2014-10-27 92 views
0
function array_push_multi_assoc($array, $key, $key2, $value){ 
    $array[$key][$key2] = $value; 
    return $array; 
} 

$myarray = array_push_multi_assoc($myarray, $key=0, 'subject', 'hello'); 

print_r($myarray); 

    Array 
(
    [0] => Array 
     (
      [id] => 97 
      [email] => [email protected] 
      [subject] => hello 
     ) 

    [1] => Array 
     (
      [id] => 93 
      [email] => [email protected] 
     ) 

    [2] => Array 
     (
      [id] => 94 
      [email] => [email protected] 
     ) 

) 

我想有這樣的事情:推項目的每一個關聯數組在PHP

Array 
(
    [0] => Array 
     (
      [id] => 97 
      [email] => [email protected] 
      [subject] => hello 
     ) 

    [1] => Array 
     (
      [id] => 93 
      [email] => [email protected] 
      [subject] => hello 
     ) 

    [2] => Array 
     (
      [id] => 94 
      [email] => [email protected] 
      [subject] => hello 
     ) 

) 
+0

這可以通過簡單的foreach循環和添加索引值來實現。 – 2014-10-27 10:12:31

回答

1

array_map可以用來建立一個新的陣列,將函數應用於一個現有的後:

$newArray = array_map(function($row) { 
    $row['subject'] = 'hello'; 
    return $row; 
}, $oldArray); 

或者使用array_walk操縱現有:

array_walk($oldArray, function(&$row) { 
    $row['subject'] = 'hello'; 
}); 

注意,你可以用一種方式重寫這些函數,這意味着它們的角色被顛倒過來(例如,用array_walk構建一個新的數組),但上面的例子是應該如何使用每個函數。

0

雖然它可能已經通過元素循環實現的,更適用的和強大的方式是使用array_map

array_map(function($item) { $item['subject'] = 'hello'; }, $array) 

希望它有幫助。