2016-06-13 70 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);