此问题在此处已有答案:
How to check if a specific value exists at a specific key in any subarray of a multidimensional array?(18个回答)
6小时前关闭
我有一个数组如下
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)
}
}
字符串
我试图找到一种方法来验证数组中是否存在id值并返回bool。我试图找到一种不需要创建循环的快速方法。使用in_array函数不起作用,我也读到它相当慢。
在php手册中,有人推荐使用flip_array(),然后使用isset(),但我无法让它适用于二维数组。
做一些像
if($array['accessory']['id'] == 211)
型
也会为我工作,但我需要匹配所有包含配件的键-不知道如何做到这一点
无论如何,我在原地打转,需要一些帮助。这看起来应该很容易。谢谢。
7条答案
按热度按时间flseospp1#
array_walk()
可以用来检查一个特定的值是否在数组中; -它迭代所有的数组元素,这些元素作为第二个参数传递给函数。例如,可以像下面的代码那样调用函数。字符串
ffscu2ro2#
这个函数很有用
in_array(211, $array['accessory']);
它验证整个指定的数组,看看你的值是否存在,并返回true。in_array
wrrgggsh3#
字符串
或者如果您需要与之关联的数据
型
1dkrff034#
字符串
ruyhziif5#
我使用了一个静态方法,因为我需要它在一个类中,但如果你愿意,你可以使用它作为一个简单的函数。
字符串
uwopmtnx6#
您可以使用
字符串
从this库中使用指定的键(如
'key1.key2.key3'
或['key1', 'key2', 'key3']
)从多维数组中获取值,如果没有找到元素,则回退到默认值。使用您的示例,它将如下所示:型
ycggw6v27#
如果要根据数组中的值进行搜索,可以使用PHP array_filter,这是用于此目的的,
用于检索兄弟值,如示例中的qty
字符串
或者用于退出内部数组键,如示例中的accessory209:
型