从JSON解码数组中检查数组键

时间:2018-06-25 20:45:24

标签: php mysql sql arrays json

我正在尝试从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。可能的解决方案是什么?

1 个答案:

答案 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字符串中还有一个嵌套数组([[);这增加了另一个层次。随意问,我是否应该详细解释一下。

相关问题