0

入力配列$items

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

の結果print_r(foo($items))

Array
(
    [2] => 1
    [5] => 1
)

働きfoo()

function foo($items)
{
    $result = array();
    foreach($items => $array)
    {
        $result[$array['id']] = TRUE;
    }
    return $result;
}

どうすれば、この配列変換を標準のPHP関数などで簡単に記述できますarray_flip()か。出来ますか?

4

2 に答える 2

0

組み込みのPHP関数を使用すると、追加の関数呼び出しの不要なオーバーヘッドが発生するだけです。あなたが書いたものは、与えられた入力から望ましい出力を作成するための効率的な方法です。

可能であれば、カスタム関数を使用することをお勧めします。

于 2012-10-11T13:38:25.197 に答える
0
$r = array_combine( 
  array_map(function($i){ return $i['id']; }, $items), // <-- key
  array_fill(0, count($items), true /* or 1 */)        // <-- value
);
于 2012-10-11T13:43:03.000 に答える