2013-03-28 103 views
3

我有一个多维数组。向多维数组添加新索引

即。

Array 
(
    [0] => Array 
     (
      [item_id] => 1 
      [item_name] => x 

     ) 


    [1] => Array 
     (
      [item_id] => 1 
      [item_name] => y 

     ) 

) 

我需要一种方法为该数组添加一个新的索引。

Array 
(
    [0] => Array 
     (
      [item_id] => 1 
      [item_name] => x 
      [value] => 1 

     ) 


    [1] => Array 
     (
      [item_id] => 1 
      [item_name] => y 
      [value] => 1 
     ) 

) 

该值可能/可能不会始终保持不变。

实现此目的的一种方法是循环数组并插入新索引value

我的问题是,还有没有其他更好的方法来做到这一点。

谢谢。

+2

'array_walk_recursive' – 2013-03-28 07:57:02

+2

['array_walk'](http://www.php.net/manual/en /function.array-walk.php)应该足够了,因为这只是一个2D数组。 – Passerby 2013-03-28 08:13:53

+0

array_walk_recursive的例子? – 2013-03-28 08:38:06

回答

6

你并不需要使用array_walk_recursive,您可以使用array_walk

array_walk($array, function(&$a) { 
    $a['value'] = 1; 
}); 
+0

这会在当前状态下抛出一个解析错误。 – 2013-03-28 09:09:49

+0

什么是错误?您使用的是哪个版本的PHP? – billyonecan 2013-03-28 09:10:59

+0

解析错误:语法错误,意外T_FUNCTION 5.2.17 – 2013-03-28 09:13:40

1

假设$ arr是您的数组,并且$yourval是要作为新数组元素存储的值。

for($i=0;$i<count($arr);$i++){ 
$arr[$i]['value'] = $yourval; 
} 
echo '<pre>'; 
print_r($arr);//Will display the new array 
+0

感谢您的回答。 – user1584103 2013-03-28 09:49:40

+0

欢迎你@ user1584103 如果你得到了输出,那么将plz标记为正确答案。 – 2013-03-28 10:41:04