2011-04-15 31 views
1

合併鍵部分和我有一個問題(其大對我來說):(如何在陣列

好吧,我有一些像數組...

Array(
    [0] => Array 
     (
      [id] => 1 
      [order_sn] => EU/2011/04/PO/5 
      [total] => 65 
     ) 

    [1] => Array 
     (
      [id] => 1 
      [order_sn] => EU/2011/04/RS/4 
      [total] => 230 
     ) 

    [2] => Array 
     (
      [id] => 1 
      [order_sn] => EU/2011/04/RS/3 
      [total] => 130 
     ) 

    [3] => Array 
     (
      [id] => 2 
      [order_sn] => EU/2011/04/RS/2 
      [total] => 100 
     ) 
    [4] => Array 
     (
      [id] => 2 
      [order_sn] => EU/2011/04/RS/1 
      [total] => 60 
     ) 
) 

如何合併它們如果陣列具有相同的密鑰值...?

,我需要得到的結果是這樣的...

Array(
    [0] => Array 
     (
      [id] => 1 
      [detail] => Array 
      (
       [0] => Array 
       (
        [order_sn] => EU/2011/04/PO/5 
        [total] => 65 
       ) 
       [1] => Array 
       (
        [order_sn] => EU/2011/04/RS/4 
        [total] => 230 
       ) 
       [2] => Array 
       (
        [order_sn] => EU/2011/04/RS/3 
        [total] => 130 
       ) 
      ) 
     ) 

    [2] => Array 
     (
      [id] => 2 
      [detail] => Array 
      (
       [0] => Array 
       (
        [order_sn] => EU/2011/04/RS/2 
        [total] => 100 
       ) 
       [1] => Array 
       (
        [order_sn] => EU/2011/04/RS/1 
        [total] => 60 
       ) 
      ) 
     ) 
) 

即時通訊非常需要一些幫助,並在即時通訊工作在PHP ...我應該爲這種情況做什麼方法?

我試着在google上搜索,在這裏......但是我不知道關鍵字>。前<

非常感謝:)

方面,Stecy

回答

3

嘗試這樣的:

<?php 
$result = array(); 
foreach ($my_array as $v) { 
    $id = $v['id']; 
    $result[$id]['id'] = $id; 
    $result[$id]['detail'][] = array(
    'order_sn' => $v['order_sn'], 
    'total' => $v['total'], 
); 
} 
+0

感謝他的工作:) – 2011-04-15 06:14:36

-1

時退房PHP array_merge功能。

+0

考慮用這樣的答案評論OP或提供實際的工作代碼。 – Khez 2011-04-15 06:07:05

0

您只需在陣列上環,並建立一個產生的一種:

// $a is your array 
$r=array(); 
foreach($a as $v) 
    $r[$v['id']][]=array('order_sn'=>$v['order_sn'], 'total'=>$v['total']); 
echo'<pre>'; 
var_dump($r); 

既然你做的ID的配對,這是明智的,有作爲關鍵字和與其相關的所有數據作爲值。沒有必要也有iddetail

+0

感謝他的工作:) – 2011-04-15 06:13:50

0
foreach($origianlArray as $key => $value){ 

$newArray[$value['id']]['id'] = $value['id']; 
$newArray[$value['id']]['detail'][] = array('order_sn' => $value['order_sn'], 'total' => $value['total']); 
} 
+1

考慮回答,當你有新的和建設性的補充。 – Khez 2011-04-15 06:09:23

+0

@Khez:至少試着回答某個人的問題。這將是讚賞,也有助於某人。 – 2011-04-15 06:14:03

+0

@Poonam我不喜歡在SO上戰鬥,特別是那些不知道他們什麼時候出錯的人。強烈要求您在發佈前仔細查看答案。 – Khez 2011-04-15 06:16:16