php数组合并/合并

时间:2013-02-07 15:14:01

标签: php arrays

您好所有stackoverflow成员,请帮助我解决有关阵列操作的问题。

stores_array:  
Array
(
    [0] => store1
    [1] =>store2
)  

items_array:  
Array  
(  
  [electronics]=>led tv  
  [cosmetics]=>eyeliner  
  [fruits]=>apple 
  [vegetables]=>cabbage  
)  

这是我到目前为止所拥有的:

$new_array = array();
  foreach($stores_array as $t) {
      $new_array[$t] = $items_array;
  }

    echo '<pre>';
    print_r($new_array);  
    echo '<pre/>';  

这是输出:

Array
(
[store1] => Array
    (
      [electronics]=>led tv  
      [cosmetics]=>eyeliner  
      [fruits]=>apple 
      [vegetables]=>cabbage  
    )  
[store2] => Array
    (
      [electronics]=>led tv  
      [cosmetics]=>eyeliner  
      [fruits]=>apple 
      [vegetables]=>cabbage  
    )

)  

这是我想要实现的目标:
我想在每个数组中添加一些其他值 请参阅我打算添加的箭头。

Array
(
[store1] => Array
    (
      [electronics]=>led tv  
      [cosmetics]=>eyeliner  
      [fruits]=>apple 
      [vegetables]=>cabbage
      [store]=>store1  <------- how can i add these?
    )  
[store2] => Array
    (
      [electronics]=>led tv  
      [cosmetics]=>eyeliner  
      [fruits]=>apple 
      [vegetables]=>cabbage 
      [store]=>store2  <------- how can i add these?
    )

)  

提前感谢你们..

5 个答案:

答案 0 :(得分:1)

试试这个:

$new_array = array();
foreach($stores_array as $t) {
    $new_array[$t] = $items_array;
    $new_array[$t]["store"]=$t;
}

echo '<pre>';
print_r($new_array);  
echo '<pre/>';

答案 1 :(得分:0)

foreach (array_keys($my_array) as $key) {
    $my_array[$key]['store'] = $key;
}

答案 2 :(得分:0)

如果我理解这个问题,这应该相对容易。试试这个:

$new_array = array();
foreach($stores_array as $t) {
    $new_array[$t] = $items_array;
    $new_array['store'] = $t;
}

答案 3 :(得分:0)

您只需在数组的末尾添加值。

  $new_array = array();

  foreach($stores_array as $t) {
      $items_array[] = $t;
      $new_array[$t] = $items_array;
  }

无论如何,如果你只是想以某种方式检索密钥,你不需要将它存储在任何地方,你总是可以使用key($array)

访问它。

在你的情况下:

foreach($new_array as $data){
    echo key($data);
}

您可以在PHP documentation找到有关key功能的更多信息。

答案 4 :(得分:0)

正如Marc B所说,这是一种冗余数据,但这是我的回答:

$ new_array = array();

foreach($stores_array as $t) {
    $new_array[$t] = $items_array;
    $new_array[$t]['store'] = $t;
}