1

次のような配列を変換する良い方法は何でしょうか:

Array (
    [0] = Array (
            [0] = Array (
                    [key] = val
                    [key2] = val2
                )

        )
    [1] = Array (
            [0] = Array (
                    [key] = val
                    [key2] = val2
                )

        )
)

Array (
    [0] = Array (
            [key] = val
            [key] = val2
        )
    [1] = Array (
            [key] = val
            [key] = val2
        )
)
4

5 に答える 5

5

これはかなり巧妙な方法かもしれません

$output=array_map('array_shift', $input);

これは、 array_map を使用して、入力配列の各要素に対して array_shift を呼び出します。これにより、各サブ配列の最初の要素が得られます。ちょっといいワンライナーですよね?

それはいいことですが、array_shift は必要以上の作業を行うため、それほど効率的ではありません。単純なループは実際にははるかに高速です (1000 個の要素を持つ配列で簡単なベンチマークを実行したところ、これは約 6 倍高速でした)。

$output=array();
foreach ($input as $element){
    $output[]=$element[0];
}
于 2011-05-31T21:51:51.707 に答える
1
$new=array();
foreach($array as $a){
  $new[]=array_shift($a);
}
于 2011-05-31T21:49:23.593 に答える
0
$new=array();
foreach ($array as $a){
$new[]=$a[0];
}

print_r($new);
于 2011-05-31T21:48:45.103 に答える
0

配列$my_arrayに 2 つの要素がある場合は、次のことができます。

$my_array = array_merge($my_array[0], $my_array[1]);

それが役に立ったことを願っています。

于 2011-05-31T21:54:09.130 に答える