2

以下の例のように順序付けする必要がある2つのアレイをどのように組み合わせることができますか?

私はこのいくつかの配列を取りたいです:

Array
(
    [0] => Array
        (
            [0] => ZE
            [1] => CD
            [2] => 97
        )

    [1] => Array
        (
            [0] => ZE
            [1] => CD
            [2] => 1908923
        )

    [2] => Array
        (
            [0] => ZD
            [1] => CD
            [2] => 23
        )

)

そして、私はそれがこのようであるべきだと思います:

Array
(
    [0] => Array
        (
            [ZE] => Array
                (
                    [0] => Array
                        (
                            [0] => CD
                            [1] => 97
                        )

                    [1] => Array
                        (
                            [0] => CD
                            [1] => 1908923
                        )
                )
        )

    [1] => Array
        (
            [0] => ZD
            [1] => CD
            [2] => 23
        )

)

いくつかのループを実行しようとしましたが、結果が得られませんでした。助けてください

ありがとう

4

2 に答える 2

2

このようなもの ...

$array = array(
    array(
        "ZE",
        "CD",
        97
    ),
    array(
        "ZE",
        "CD",
        1908923
       ),
    array(
        "ZD",
        "CD",
        23
    )
 );

 $result = array();
 $search = 'ZE';

 foreach($array as $elem){
     if(($key = array_search($search, $elem)) !== false){
         unset($elem[$key]);
         $result[0][$search][] = $elem;
     } else {
         $result[] = $elem;
     }
 }

 print_r($result);

結果の配列を正確にどのように表示するかはわかりませんが$search、配列である例を次に示します。

 $result = array();
 $search = array('ZE', 'ZD', 'ZI');

 foreach($array as $elem){
     $key = false;
     foreach($search as $s){
         if(($key = array_search($s, $elem)) !== false){
             break;
         }
     }
     if($key !== false){
         unset($elem[$key]);
         $result[0][$s][] = $elem;
     } else {
         $result[] = $elem;
     }
 }

 print_r($result);
于 2012-06-07T01:10:08.800 に答える
1
$array = array(
  array(
    "ZE",
    "CD",
    97
  ),
  array(
    "ZE",
    "CD",
    1908923
  ),
  array(
    "ZD",
    "CD",
    23
  )
);

$new_array = array();
$i = 0;
$ix = 1;
foreach($array as $var){
  if($var[0]=='ZE'){
    $new_array[0]['ZE'][$i][0] = 'CD';
    $new_array[0]['ZE'][$i][1] = $var[2];
    $i++;
  }else{ 
    $new_array[$ix][0] = 'ZD';
    $new_array[$ix][1] = 'CD';
    $new_array[$ix][2] = $var[2];
    $ix++;
  }
}

var_dump($new_array);
于 2012-06-07T00:57:02.477 に答える