0

array_reduceメソッドとarray_mergeメソッドを試しましたが、期待どおりに機能しないようです。foreachなしでこれを行う方法はありますか?

次のような配列を変換する必要があります。

Array
(
    [0] => Array
        (
            [id] => 2
        )

    [1] => Array
        (
            [id] => 3
        )

    [2] => Array
        (
            [id] => 4
        )

)

の中へ:

Array
(
    [0] => 2
    [1] => 3
    [2] => 4
)
4

2 に答える 2

1

あなたが使うことができますarray_map

$flat = array_map(function($el) {  return $el['id']; }, $arr);

これはphp5.3用ではありません。5.2を使用している場合は、関数を定義するか、create_functionここにあるような匿名を渡す代わりに使用する必要があります。

于 2012-11-15T17:27:56.120 に答える
0

PHP 5> =5.5.0またはPHP7を使用している場合、この問題のはるかに優れた解決策array_columnは、まさにこの目的のために作成されたため、を使用することだと思います。

$multidimensionalArray = [
    [
        'id' => 2,
        'somethingElse' => 'foo'
    ],
    [
        'id' => 3,
        'somethingElse' => 'bar'
    ],
    [
        'id' => 4,
        'somethingElse' => 'baz'
    ],
    [
        'id' => 5,
        'somethingElse' => 'bam'
    ],
];

$justTheIds = array_column($multidimensionalArray, 'id');

var_dump($justTheIds);

/*
  array(4) {
  [0]=>
  int(2)
  [1]=>
  int(3)
  [2]=>
  int(4)
  [3]=>
  int(5)
}
*/
于 2016-04-06T08:54:02.753 に答える