2016-06-13 68 views
0

嗨我有以下数组结构,我如何合并子数组值['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其值应[1]['content'].

感谢您的帮助合并到一个名为[1234]->内容一个阵列从[0]['content']内容。

+0

请通过正确的在格式化'[0] [编号...'一部分,我也不清楚你想要什么,这也读无效PHP编辑的问题。谢谢。 – Dilettant

+0

@Dilettant - 希望它现在更清晰。 –

+0

我想是的,因为答案已经提供。合身吗?那么你可能会接受它;-)感谢您的更新 – Dilettant

回答

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);