我有一个PHP多维数组,如:
array(
[0] => array("code"=>code1, "value"=>val1, "operation"=>Add),
[1] => array("code"=>code2, "value"=>val2, "operation"=>Remove),
[2] => array("code"=>code3, "value"=>val3, "operation"=>Edit)
)
如果我知道code
和value
,我如何获得与该条目对应的operation
数组索引值。例如:如果我传递 code1 和 val1 ,那么它应该返回值 Add 。我可以使用foreach()
,但我正在寻找其他更快更有效的方式来获取它。
任何人都可以帮助我吗?提前致谢。
答案 0 :(得分:2)
发现foreach
/ break
的简单return
在最差情况下为O(n)
,最好为O(1)
。
将源数组修改为:
array(
'code1:val1' => Add,
'code2:val2' => Remove,
'code3:val3' => Edit
)
将为您O(1)
提供$arr['code1:val1']
。
例如,使用array_filter
的解决方案将O(n)
始终。
答案 1 :(得分:0)
function getOperation($code,$value){
foreach($array as $key => $item){
if($item["code"]===$code && $item["value"] === $value)
return $item["operation"];
}
return;
}