【问题标题】:php array combine/mergephp数组合并/合并
【发布时间】:2013-08-03 21:07:06
【问题描述】:

各位 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?
    )

)  

提前谢谢大家..

【问题讨论】:

  • 这些信息是不是有点多余?
  • foreach ($new_array as $store =&gt; $store_info) 将在不浪费内存的情况下为您提供该信息。

标签: php arrays


【解决方案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/>';

【讨论】:

    【解决方案2】:
    foreach (array_keys($my_array) as $key) {
        $my_array[$key]['store'] = $key;
    }
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        您只需将值添加到数组的末尾即可。

          $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 函数的更多信息。

        【讨论】:

          【解决方案5】:

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

          $new_array = 数组();

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-06-18
            • 2012-11-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多