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
$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 回答
0

使用内置 PHP 函数只会引入额外函数调用的不必要开销。您编写的内容已经是从给定输入创建所需输出的有效方法。

如果可能,我建议使用您的自定义函数。

于 2012-10-11T13:38:25.197 回答