dongsheng9203 2017-08-12 19:06
浏览 74
已采纳

带有foreach循环的PHP array_merge_recursive

How do you merge a loop of arrays into a single array(maybe object) adding each value to its associated common key?

Categories: 

Array ( [category] => introduction [timeZone] => Europe/Stockholm [language] => Danish )

Array ( [category] => introduction [timeZone] => Europe/Stockholm [language] => Danish )

Array ( [category] => e-learning [timeZone] => Europe/Stockholm [language] => German )

into

Collection

Array ( 
        [category] => Array (e-learning,introduction) 
        [timeZone] => Europe/Stockholm 
        [language] => Array (Danish,German)
)

Mycode so far:

foreach ($categories as $category){
   $collection = array_merge_recursive($category);
}

It seem like array_merge_recursive would achieve my result if I had $array1,$array2 sepcified within the PHP. But I need to do from a foreach loop.

Thanks.

  • 写回答

2条回答 默认 最新

  • duanpanyang1962 2017-08-12 19:30
    关注

    Given the initial array named $categories, Consider:

    $collection = array_merge_recursive(...$categories);
    foreach($collection as &$item) $item = array_unique($item);
    

    Output:

    [
      'category' => ['intro','learning'],
      'timezone' => ['Europe'],
      'language' => ['Danish','German'],
    ]
    

    Live demo

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?