1. 程式人生 > >php將一個二維數組按照某個字段值合並成一維數組,如果有重復則將重復的合並成二維數組

php將一個二維數組按照某個字段值合並成一維數組,如果有重復則將重復的合並成二維數組

字段 轉載 () num 精簡 val 特定 數組 brush

版權聲明:本文為博主原創文章,未經博主允許不得轉載。

最近工作中碰到一個問題,用PHP將一個二維數組按照二維數組中的各個項中的某個特定字段值合並成一維數組,如果有重復則將重復的合並成二維數組,生成的二維數組的第一維的鍵是特定字段的值,二維的鍵可以是隨機索引,也可以是其中的另一個字段的值。其實這個需求經常會在工作中碰到,只是碰到的時候一個有重復的就直接用之前的覆蓋後面的或者用之後的覆蓋之前的,這樣很容易就可以處理了。很少碰到這種有一維數組又有二維數組的情況,先上代碼:

$a = array(  
    0 => array(‘target_id‘ => ‘22‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘15261‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    1 => array(‘target_id‘ => ‘22‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘2‘, ‘extension_number‘ => ‘66002‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => ‘1‘,),  
    14 => array(‘target_id‘ => ‘22‘, ‘target_type‘ => ‘1‘,‘phone_type‘ => ‘4‘, ‘extension_number‘ => ‘56431‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    2 => array(‘target_id‘ => ‘24‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘54876‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => ‘1‘,),  
    3 => array(‘target_id‘ => ‘25‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘07143‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    13 => array(‘target_id‘ => ‘24‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘0‘, ‘extension_number‘ => ‘96949‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    4 => array(‘target_id‘ => ‘26‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘94755‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    5 => array(‘target_id‘ => ‘30‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘14171‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    6 => array(‘target_id‘ => ‘36‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘54876‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => ‘1‘,),  
    7 => array(‘target_id‘ => ‘42‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘31354‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    8 => array(‘target_id‘ => ‘43‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘66810‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    9 => array(‘target_id‘ => ‘45‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘34868‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    10 => array(‘target_id‘ => ‘50‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘79523‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    11 => array(‘target_id‘ => ‘149‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘59438‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    12 => array(‘target_id‘ => ‘806‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘14780‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
);  
$target = array();  
$temp = array();  
foreach ($a as $val) {  
    if (!empty($target)) {  
        if (in_array($val[‘target_id‘], array_keys($target))) {  
            if (!empty($temp[$val[‘target_id‘]])) {  
                $target[$val[‘target_id‘]] = null;  
                $target[$val[‘target_id‘]][$temp[$val[‘target_id‘]][‘phone_type‘]] = $temp[$val[‘target_id‘]];  
                $temp[$val[‘target_id‘]] = null;  
            }  
            $target[$val[‘target_id‘]][$val[‘phone_type‘]] = $val;  
        } else {  
            $temp[$val[‘target_id‘]] = $val;  
            $target[$val[‘target_id‘]] = $val;  
        }  
    } else {  
        $temp[$val[‘target_id‘]] = $val;  
        $target[$val[‘target_id‘]] = $val;  
    }  
}  
var_dump($target);exit;  
這個返回的結果形如:

array  
  22 =>   
    array  
      1 =>   
        array  
          ‘target_id‘ => string ‘22‘ (length=2)  
          ‘target_type‘ => string ‘1‘ (length=1)  
          ‘phone_type‘ => string ‘1‘ (length=1)  
          ‘extension_number‘ => string ‘15261‘ (length=5)  
          ‘phone_id‘ => string ‘1‘ (length=1)  
          ‘phone_number‘ => string ‘4008285599‘ (length=10)  
          ‘extension_special‘ => null  
      2 =>   
        array  
          ‘target_id‘ => string ‘22‘ (length=2)  
          ‘target_type‘ => string ‘1‘ (length=1)  
          ‘phone_type‘ => string ‘2‘ (length=1)  
          ‘extension_number‘ => string ‘66002‘ (length=5)  
          ‘phone_id‘ => string ‘1‘ (length=1)  
          ‘phone_number‘ => string ‘4008285599‘ (length=10)  
          ‘extension_special‘ => string ‘1‘ (length=1)  
      4 =>   
        array  
          ‘target_id‘ => string ‘22‘ (length=2)  
          ‘target_type‘ => string ‘1‘ (length=1)  
          ‘phone_type‘ => string ‘4‘ (length=1)  
          ‘extension_number‘ => string ‘56431‘ (length=5)  
          ‘phone_id‘ => string ‘1‘ (length=1)  
          ‘phone_number‘ => string ‘4008285599‘ (length=10)  
          ‘extension_special‘ => null  
  24 =>   
    array  
      1 =>   
        array  
          ‘target_id‘ => string ‘24‘ (length=2)  
          ‘target_type‘ => string ‘1‘ (length=1)  
          ‘phone_type‘ => string ‘1‘ (length=1)  
          ‘extension_number‘ => string ‘54876‘ (length=5)  
          ‘phone_id‘ => string ‘1‘ (length=1)  
          ‘phone_number‘ => string ‘4008285599‘ (length=10)  
          ‘extension_special‘ => string ‘1‘ (length=1)  
      0 =>   
        array  
          ‘target_id‘ => string ‘24‘ (length=2)  
          ‘target_type‘ => string ‘1‘ (length=1)  
          ‘phone_type‘ => string ‘0‘ (length=1)  
          ‘extension_number‘ => string ‘96949‘ (length=5)  
          ‘phone_id‘ => string ‘1‘ (length=1)  
          ‘phone_number‘ => string ‘4008285599‘ (length=10)  
          ‘extension_special‘ => null  
  25 =>   
    array  
      ‘target_id‘ => string ‘25‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘07143‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  26 =>   
    array  
      ‘target_id‘ => string ‘26‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘94755‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  30 =>   
    array  
      ‘target_id‘ => string ‘30‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘14171‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  36 =>   
    array  
      ‘target_id‘ => string ‘36‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘54876‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => string ‘1‘ (length=1)  
  42 =>   
    array  
      ‘target_id‘ => string ‘42‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘31354‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  43 =>   
    array  
      ‘target_id‘ => string ‘43‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘66810‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  45 =>   
    array  
      ‘target_id‘ => string ‘45‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘34868‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  50 =>   
    array  
      ‘target_id‘ => string ‘50‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘79523‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  149 =>   
    array  
      ‘target_id‘ => string ‘149‘ (length=3)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘59438‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  806 =>   
    array  
      ‘target_id‘ => string ‘806‘ (length=3)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘14780‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null 

  如果不想要生成的二維數組的key值,或者說再精簡些,可以這樣:

$a = array(  
    0 => array(‘target_id‘ => ‘22‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘15261‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    1 => array(‘target_id‘ => ‘22‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘2‘, ‘extension_number‘ => ‘66002‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => ‘1‘,),  
    14 => array(‘target_id‘ => ‘22‘, ‘target_type‘ => ‘1‘,‘phone_type‘ => ‘4‘, ‘extension_number‘ => ‘56431‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    2 => array(‘target_id‘ => ‘24‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘54876‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => ‘1‘,),  
    3 => array(‘target_id‘ => ‘25‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘07143‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    13 => array(‘target_id‘ => ‘24‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘0‘, ‘extension_number‘ => ‘96949‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    4 => array(‘target_id‘ => ‘26‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘94755‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    5 => array(‘target_id‘ => ‘30‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘14171‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    6 => array(‘target_id‘ => ‘36‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘54876‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => ‘1‘,),  
    7 => array(‘target_id‘ => ‘42‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘31354‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    8 => array(‘target_id‘ => ‘43‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘66810‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    9 => array(‘target_id‘ => ‘45‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘34868‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    10 => array(‘target_id‘ => ‘50‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘79523‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    11 => array(‘target_id‘ => ‘149‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘59438‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
    12 => array(‘target_id‘ => ‘806‘, ‘target_type‘ => ‘1‘, ‘phone_type‘ => ‘1‘, ‘extension_number‘ => ‘14780‘, ‘phone_id‘ => ‘1‘, ‘phone_number‘ => ‘4008285599‘, ‘extension_special‘ => NULL,),  
);  
$target = array();  
$temp = array();  
foreach ($a as $val) {  
    if (!empty($target)) {  
        if (in_array($val[‘target_id‘], array_keys($target))) {  
            if (!empty($temp[$val[‘target_id‘]])) {  
                $target[$val[‘target_id‘]] = null;  
                $target[$val[‘target_id‘]][] = $temp[$val[‘target_id‘]];  
                $temp[$val[‘target_id‘]] = null;  
            }  
            $target[$val[‘target_id‘]][] = $val;  
        } else {  
            $temp[$val[‘target_id‘]] = $val;  
            $target[$val[‘target_id‘]] = $val;  
        }  
    } else {  
        $temp[$val[‘target_id‘]] = $val;  
        $target[$val[‘target_id‘]] = $val;  
    }  
}  
var_dump($target);exit; 

  生成結果如:

array  
  22 =>   
    array  
      0 =>   
        array  
          ‘target_id‘ => string ‘22‘ (length=2)  
          ‘target_type‘ => string ‘1‘ (length=1)  
          ‘phone_type‘ => string ‘1‘ (length=1)  
          ‘extension_number‘ => string ‘15261‘ (length=5)  
          ‘phone_id‘ => string ‘1‘ (length=1)  
          ‘phone_number‘ => string ‘4008285599‘ (length=10)  
          ‘extension_special‘ => null  
      1 =>   
        array  
          ‘target_id‘ => string ‘22‘ (length=2)  
          ‘target_type‘ => string ‘1‘ (length=1)  
          ‘phone_type‘ => string ‘2‘ (length=1)  
          ‘extension_number‘ => string ‘66002‘ (length=5)  
          ‘phone_id‘ => string ‘1‘ (length=1)  
          ‘phone_number‘ => string ‘4008285599‘ (length=10)  
          ‘extension_special‘ => string ‘1‘ (length=1)  
      2 =>   
        array  
          ‘target_id‘ => string ‘22‘ (length=2)  
          ‘target_type‘ => string ‘1‘ (length=1)  
          ‘phone_type‘ => string ‘4‘ (length=1)  
          ‘extension_number‘ => string ‘56431‘ (length=5)  
          ‘phone_id‘ => string ‘1‘ (length=1)  
          ‘phone_number‘ => string ‘4008285599‘ (length=10)  
          ‘extension_special‘ => null  
  24 =>   
    array  
      0 =>   
        array  
          ‘target_id‘ => string ‘24‘ (length=2)  
          ‘target_type‘ => string ‘1‘ (length=1)  
          ‘phone_type‘ => string ‘1‘ (length=1)  
          ‘extension_number‘ => string ‘54876‘ (length=5)  
          ‘phone_id‘ => string ‘1‘ (length=1)  
          ‘phone_number‘ => string ‘4008285599‘ (length=10)  
          ‘extension_special‘ => string ‘1‘ (length=1)  
      1 =>   
        array  
          ‘target_id‘ => string ‘24‘ (length=2)  
          ‘target_type‘ => string ‘1‘ (length=1)  
          ‘phone_type‘ => string ‘0‘ (length=1)  
          ‘extension_number‘ => string ‘96949‘ (length=5)  
          ‘phone_id‘ => string ‘1‘ (length=1)  
          ‘phone_number‘ => string ‘4008285599‘ (length=10)  
          ‘extension_special‘ => null  
  25 =>   
    array  
      ‘target_id‘ => string ‘25‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘07143‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  26 =>   
    array  
      ‘target_id‘ => string ‘26‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘94755‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  30 =>   
    array  
      ‘target_id‘ => string ‘30‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘14171‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  36 =>   
    array  
      ‘target_id‘ => string ‘36‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘54876‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => string ‘1‘ (length=1)  
  42 =>   
    array  
      ‘target_id‘ => string ‘42‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘31354‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  43 =>   
    array  
      ‘target_id‘ => string ‘43‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘66810‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  45 =>   
    array  
      ‘target_id‘ => string ‘45‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘34868‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  50 =>   
    array  
      ‘target_id‘ => string ‘50‘ (length=2)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘79523‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  149 =>   
    array  
      ‘target_id‘ => string ‘149‘ (length=3)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘59438‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  
  806 =>   
    array  
      ‘target_id‘ => string ‘806‘ (length=3)  
      ‘target_type‘ => string ‘1‘ (length=1)  
      ‘phone_type‘ => string ‘1‘ (length=1)  
      ‘extension_number‘ => string ‘14780‘ (length=5)  
      ‘phone_id‘ => string ‘1‘ (length=1)  
      ‘phone_number‘ => string ‘4008285599‘ (length=10)  
      ‘extension_special‘ => null  

  我這樣寫有些復雜,但是這種需求在網上很難搜到代碼,所以自己貼一份,給大家審查下,看看還有什麽更簡單的方法實現,畢竟我的算法學的還是挺差的。歡迎指點討論謝謝。

php將一個二維數組按照某個字段值合並成一維數組,如果有重復則將重復的合並成二維數組