输入数组$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()
或其他内容。有可能吗?
答案 0 :(得分:0)
使用内置的PHP函数只会引入额外函数调用的不必要开销。您所编写的内容已经是从给定输入创建所需输出的有效方法。
如果可能,我建议您使用自定义功能。
答案 1 :(得分:0)
$r = array_combine(
array_map(function($i){ return $i['id']; }, $items), // <-- key
array_fill(0, count($items), true /* or 1 */) // <-- value
);