【问题标题】:Insert to all innner array of php a variable at once一次将一个变量插入到php的所有内部数组中
【发布时间】:2013-09-13 08:13:23
【问题描述】:

例如:

array(
    array(
        id = 1,
        name= ben,
        date = ""

    ), 
    array(
        id=2,
        name= john,
        date = ""   
    ),
    array(
        id =3,
        name= dow,
        date = ""

    )
)

我有这个数组。如您所见,这些是另一个数组中的相同数组。这使它成为一个多维数组。有没有一种方法可以在没有 foreach 循环的情况下将日期分配给所有内部数组?

提前致谢!

【问题讨论】:

  • array_walk() 或 array_map() 其中循环是 internal 而不是显式

标签: php arrays loops


【解决方案1】:

你可以试试array_walk

array_walk($array, function(&$value, $key){
    $value['date'] = time();
});

输出

var_dump($array);

array (size=3)
  0 => 
    array (size=3)
      'id' => int 1
      'name' => string 'ben' (length=3)
      'date' => int 1379060666
  1 => 
    array (size=3)
      'id' => int 2
      'name' => string 'john' (length=4)
      'date' => int 1379060666
  2 => 
    array (size=3)
      'id' => int 3
      'name' => string 'dow' (length=3)
      'date' => int 1379060666

【讨论】:

  • 非常感谢。我很感激!
【解决方案2】:

array_replace_recursive() 很有用

$sample = array(
    array( 'id' => 1, 'name' => 'ben'),
    array( 'id' => 2, 'name' => 'john'),
    array( 'id' => 3, 'name' => 'mark')
);

$count = count($sample);
$magic = array_fill(0, $count, array('date' => time()));

$result = array_replace_recursive($sample, $magic);
var_dump($result);

【讨论】:

  • 感谢您的努力!
【解决方案3】:

虽然它不是很可扩展,但您可以对其进行硬编码。 (不过,array_map() 可能更好。)

$arr[0]['date'] = $date1;
$arr[1]['date'] = $date2;
$arr[2]['date'] = $date3;

【讨论】:

    猜你喜欢
    • 2011-07-17
    • 2014-09-22
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多