获取与其他数组值对应的多维数组索引值

时间:2018-03-09 11:39:49

标签: php arrays multidimensional-array

我有一个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)
)

如果我知道codevalue,我如何获得与该条目对应的operation数组索引值。例如:如果我传递 code1 val1 ,那么它应该返回值 Add 。我可以使用foreach(),但我正在寻找其他更快更有效的方式来获取它。

任何人都可以帮助我吗?提前致谢。

2 个答案:

答案 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)

只是跑一个foreach。在最坏的情况下,它将是O(n)搜索。

function getOperation($code,$value){
    foreach($array as $key => $item){
        if($item["code"]===$code && $item["value"] === $value)
            return $item["operation"];
    }
    return;
}