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]の値の名前が付けられています。私はそれで問題ありません。[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 に答える