如何组合这些Array值?

时间:2016-06-13 15:25:15

标签: php arrays multidimensional-array

您好我有以下数组结构,如何通过['number']合并子数组值?

 array(4) { 
          ["success"]=> bool(true) 
          ["messages"]=> array(2)
           {  

            ["0"]=> array(5){

                ["number"]=>string(1)                           
                ["incoming_id"]=> string(6)                        
                ["usernumber"]=> string(13)                         
                ["content"]=> string(4)                           
                ["date"]=> string(10)  

                }

            ["1"]=> array(5){

                ["number"]=>string(1)                           
                ["incoming_id"]=> string(6)                        
                ["usernumber"]=> string(13)                         
                ["content"]=> string(4)                           
                ["date"]=> string(10)  

                }  
        }             
       ["start"]=> string(1) 
       ["next"]=> string(2) 
       }

我想要以下内容:如果['number'][0]的值与[1]中的值相同,则应将其保存在一个新数组中。对于示例[0]['number']-> 1234[1]['number'] -> 1234,其值应合并为一个名为[1234]->的{​​{1}}内容来自[0]['content'],内容来自[1]['content'].

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您必须遍历数组并将所有这些值组合在一起:

$grouped = array();
foreach ($array as $data) {
    if (!isset($grouped[$data['number']])) {
        $grouped[$data['number']] = array();
    }

    $grouped[$data['number']][] = $data;
}

或者您可以使用indexed中的NSPL功能。

use function \nspl\a\indexed;

$grouped = indexed($array, 'number', false);