我正在尝试从SQL的JSON解码字符串中检查数组键。我直接在此处粘贴MySQL字段值,以避免长代码。
$ajaxcart = "{\"119\":[[\"Front Row\",119,5,3,15]]}";
$cart[] = json_decode(stripslashes($ajaxcart));
foreach ($cart as $key => $value) {
if(array_key_exists(119, $value)){
return true;
}else{
return false;
}
}
但是不知道为什么总是返回false。如果我正在检查is_array($value)
,它也返回false。可能的解决方案是什么?
答案 0 :(得分:0)
您没有说想要哪一个119。第一次需要:
foreach ($cart as $key => $value) {
if(property_exists($value, '119')){
echo 'true1';
}else{
echo 'false1';
}
}
第二次您需要:
foreach ($cart[0]->{119} as $key => $value) {
if(in_array(119, $value)){
echo 'true2';
}else{
echo 'false2';
}
}
您可以here
检查它您需要迭代的原因部分是因为您没有将true作为第二个参数传递给json_decode。第二个原因是您使用$cart[] = ...
。这将创建一个数组,并将解码后的json添加到其中。您的JSON字符串中还有一个嵌套数组([[
);这增加了另一个层次。随意问,我是否应该详细解释一下。