索引相等的分割数组

时间:2019-09-10 12:34:02

标签: php arrays

我有一个结果数组,其格式如下:

array(6) {
  [0]=>
  array(3) {
    ["company"]=>
    string(1) "A"
    ["uf_prop"]=>
    string(2) "GO"
    ["qtd_prop_uf"]=>
    string(3) "612"
  }
  [1]=>
  array(3) {
    ["company"]=>
    string(1) "A"
    ["uf_prop"]=>
    string(2) "MG"
    ["qtd_prop_uf"]=>
    string(1) "1"
  }
  [2]=>
  array(3) {
    ["company"]=>
    string(1) "A"
    ["uf_prop"]=>
    string(2) "MS"
    ["qtd_prop_uf"]=>
    string(2) "11"
  }
  [3]=>
  array(3) {
    ["company"]=>
    string(1) "A"
    ["uf_prop"]=>
    string(2) "MT"
    ["qtd_prop_uf"]=>
    string(1) "4"
  }
  [4]=>
  array(3) {
    ["company"]=>
    string(1) "A"
    ["uf_prop"]=>
    string(2) "PA"
    ["qtd_prop_uf"]=>
    string(4) "2213"
  }  
  [5]=>
  array(3) {
    ["company"]=>
    string(1) "B"
    ["uf_prop"]=>
    string(2) "PA"
    ["qtd_prop_uf"]=>
    string(1) "6"
  }
}

如果可能的话,我想像以下示例一样拆分和组织此数组:

company: A 
uf_prop:    GO, MG, MS, MT, PA
qtd_pro_uf: 612, 1, 11, 4, 2213

company: B
uf_prop:    PA
qtd_pro_uf:  6

如果有更多公司,我希望我可以除以2或更多,然后显示州和先验商店的数量。

1 个答案:

答案 0 :(得分:2)

我觉得数组结构就像php,所以这里是php解决方案。

$result = [];
foreach ($arr as $key => $value) {
    $result[$value['company']]['uf_prop'][]    = $value['uf_prop'];
    $result[$value['company']]['qtd_pro_uf'][] = $value['qtd_pro_uf'];
}
foreach ($result as $key => $value) {
    echo "company: " . $key . "<br/>";
    echo "uf_prop: " . implode(",", $value['uf_prop']) . "<br/>";
    echo "qtd_pro_uf: " . implode(",", $value['qtd_pro_uf']) . "<br/>";
}