1

我使用以下脚本对数组进行了分组

$grouped_array = array();       
foreach($ungrouped_array as $item) {
    //group them by id
    $grouped_array[$item['id']][] = $item;
}

现在这个分组数组看起来像这样

array(3) {
  [1]=>
  array(2) {
    [0]=>
    array(1) {
      ["id"]=>
      string(1) "1"
    }
    [1]=>
    array(1) {
      ["id"]=>
      string(1) "1"
    }
  }

  [6]=>
  array(1) {
    [0]=>
    array(1) {
      ["id"]=>
      string(1) "6"
    }
  }

  [2]=>
  array(4) {
    [0]=>
    array(1) {
      ["id"]=>
      string(1) "2"
    }
    [1]=>
    array(2) {
      ["id"]=>
      string(1) "2"
      ["sub"]=>
      string(1) "1"
    }
    [2]=>
    array(2) {
      ["id"]=>
      string(1) "2"
      ["sub"]=>
      string(1) "2"
    }
    [3]=>
    array(1) {
      ["id"]=>
      string(1) "2"
    }
  }
}

我已经删除了数组的大部分以使其更短,但是[0]这个分组数组中没有字段所有数组字段都被赋予了[id]'s 值的名称。我对此没有任何问题,我只需要再次将其缩短[ID]

任何建议都会很棒。

4

1 回答 1

1

这应该可以得到 1、2、6:

<?php
$grouped_array = array();       
foreach($ungrouped_array as $item) {
    $grouped_array[$item['id']][] = $item;
}

// sort by key.
ksort( $grouped_array, SORT_NUMERIC );

print_r( $grouped_array );
于 2012-07-06T09:17:46.397 回答