2

例:

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

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

    )
)

私はこの配列を持っています。ご覧のとおり、これらは別の配列内の同一の配列です。これにより、多次元配列になります。foreach ループなしですべての内部配列に日付を割り当てる方法はありますか?

前もって感謝します!

4

3 に答える 3

2

あなたが試すことができます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
于 2013-09-13T08:26:32.337 に答える
1

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);
于 2013-09-13T08:21:27.803 に答える
0

拡張性は高くありませんが、ハードコードすることはできます。(array_map()そのほうがいいかもしれませんが。)

$arr[0]['date'] = $date1;
$arr[1]['date'] = $date2;
$arr[2]['date'] = $date3;
于 2013-09-13T08:19:27.337 に答える