在嵌套数组中搜索值

dar*_*dub 5 php multidimensional-array

我有一个数组如下

array(2) {
  ["operator"] => array(2) {
    ["qty"] => int(2)
    ["id"] => int(251)
  }
  ["accessory209"] => array(2) {
    ["qty"] => int(1)
    ["id"] => int(209)
  }
  ["accessory211"] => array(2) {
    ["qty"] => int(1)
    ["id"] => int(211)
  }
}
Run Code Online (Sandbox Code Playgroud)

我试图找到一种方法来验证数组中存在的id值并返回bool.我试图找出一种不需要创建循环的快速方法.使用in_array函数不起作用,我也读到它很慢.

在php手册中,有人建议使用flip_array()然后使用isset(),但我不能让它适用于2-d数组.

做某事

if($array['accessory']['id'] == 211)
Run Code Online (Sandbox Code Playgroud)

也适合我,但我需要匹配所有包含附件的钥匙 - 不知道如何做到这一点

无论如何,我在旋转,并可以使用一些帮助.这看起来应该很容易.谢谢.

fal*_*mir 6

嘿dardub,您可以使用array_walk来验证特定值是否在您的数组中 - array_walk遍历您数组的al元素并将提供的函数应用于它们,因此基本上您需要创建该函数.它使用如下:

$arr = array(
    'one' => array('id' => 1),
    'two' => array('id' => 2),
    'three' => array('id' => 3)
);

function checkValue($value, $key)
{
    echo $value['id'];
}

array_walk($arr, 'checkValue');
Run Code Online (Sandbox Code Playgroud)

您只需要在函数中添加您需要的条件/验证.

希望能帮助到你.

M.

编辑:array_walk上的PHP文档http://www.php.net/manual/en/function.array-walk.php