1

例: -

$arrayName = array(
  '0' => array('name' => 'a', 'id' => '123'  ),
  '1' =>  array('name' => 'b', 'id' => '123'  ), 
  '3' => array('name' => 'c', 'id' => '456'  ) 
);

同じID値をここにグループ化する必要があります

結果:

$arrayName = array(
  '0' => array(
    '0' =>  array('name' => 'a', 'id' => '123'  ),
    '1' => array('name' => 'b', 'id' => '123'  ) ), 
  '1' => array('1' => array('name' => 'c', 'id' => '456'  ) );
4

1 に答える 1

2

サンプルセットを使用すると、値を反復処理し、に基づいてデータをグループ化できますid。次のようなものを使用する

$output = array();
foreach($arrayName as $data){
  $output[$data['id']][] = $data;
}

その出力は次のようになります。

array(2){
  [123] =>
  array(2){
    [0] =>
    array(2){
      ["名前"]=>
      string(1) "a"
      ["id"] =>
      string(3) "123"
    }
    [1] =>
    array(2){
      ["名前"]=>
      string(1) "b"
      ["id"] =>
      string(3) "123"
    }
  }
  [456] =>
  array(1){
    [0] =>
    array(2){
      ["名前"]=>
      string(1) "c"
      ["id"] =>
      string(3) "456"
    }
  }
}

が本当にキーになりたくない場合はid、その連想配列から値を取得するだけです。

$output = array_values($output)
array(2){
  [0] =>
  array(2){
    [0] =>
    array(2){
      ["名前"]=>
      string(1) "a"
      ["id"] =>
      string(3) "123"
    }
    [1] =>
    array(2){
      ["名前"]=>
      string(1) "b"
      ["id"] =>
      string(3) "123"
    }
  }
  [1] =>
  array(1){
    [0] =>
    array(2){
      ["名前"]=>
      string(1) "c"
      ["id"] =>
      string(3) "456"
    }
  }
}

:他の配列関数のいくつかを使用して、これを行うためのより良い方法がある可能性があります。ただし、これは基本的なロジックを示しています。

于 2012-11-17T05:09:23.827 に答える