请问我怎么把这样的二维数组合并里面相同的值?

朋友抬一手
  • 85
array(34) {
  ["BALI"]=>
  array(64) {
    [0]=>
    array(2) {
      [1]=>
      string(6) "BADUNG"
      [2]=>
      string(10) "ABIANSEMAL"
    }
    [1]=>
    array(2) {
      [1]=>
      string(6) "BADUNG"
      [2]=>
      string(4) "KUTA"
    }
    [2]=>
    array(2) {
      [1]=>
      string(6) "BADUNG"
      [2]=>
      string(12) "KUTA SELATAN"
    }
    [3]=>
    array(2) {
      [1]=>
      string(6) "BADUNG"
      [2]=>
      string(10) "KUTA UTARA"
    }
    [4]=>
    array(2) {
      [1]=>
      string(6) "BADUNG"
      [2]=>
      string(6) "MENGWI"
    }
    [5]=>
    array(2) {
      [1]=>
      string(6) "BADUNG"
      [2]=>
      string(6) "PETANG"
    }
    [6]=>
    array(2) {
      [1]=>
      string(6) "BANGLI"
      [2]=>
      string(6) "BANGLI"
    }
      
  }
  ["BANGKA BELITUNG"]=>
  array(52) {
    [0]=>
    array(2) {
      [1]=>
      string(6) "BANGKA"
      [2]=>
      string(5) "BAKAM"
    }
    [1]=>
    array(2) {
      [1]=>
      string(6) "BANGKA"
      [2]=>
      string(7) "BELINYU"
    }
    [2]=>
    array(2) {
      [1]=>
      string(6) "BANGKA"
      [2]=>
      string(11) "MENDO BARAT"
    }
    [3]=>
    array(2) {
      [1]=>
      string(6) "BANGKA"
      [2]=>
      string(8) "MERAWANG"
    }
   
    
   

变成下面这种格式

array(34) {
  ["BALI"]=>
  array(64) {
    [0]=>
    array(2) {
     ["BADUNG"] => Array
      (
         string(6) "市下面的县",
         string(6) "市下面的县",
                   
      )
   [""BANGLI""] => Array
      (
         string(6) "市下面的县",
         string(6) "市下面的县",
                   
      )
    }

   }
   
  }
  ["BANGKA BELITUNG"]=>
  array(52) {
    [0]=>
    array(2) {
     ["BADUNG"] => Array
       (
         string(6) "市下面的县",
         string(6) "市下面的县",
                   
             )
   [""BANGLI""] => Array
       (
         string(6) "市下面的县",
         string(6) "市下面的县",
                  
     )
    }
   

图片描述

把相同的合并,并且作为数组的键值,请问有人知道怎么写的吗?

回复
阅读 1k
1 个回答

先进行groupby后进行map操作。
groupby 示例函数

function groupByKey($input, $keyIndex)
{
    $tmp = [];
    foreach ($input as $item) {
        if (!isset($tmp[$item[$keyIndex]])) {
            $tmp[$item[$keyIndex]] = [];
        }
        $tmp[$item[$keyIndex]][] = $item;
    }
    return $tmp;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏