无法使用PHP检查json键值是否不存在
我需要一些帮助。我需要检查键值是否存在于json数组中,或者是否不使用PHP,但它会抛出一些警告消息,并且没有值出现。我在下面解释我的代码无法使用PHP检查json键值是否不存在,php,arrays,json,Php,Arrays,Json,我需要一些帮助。我需要检查键值是否存在于json数组中,或者是否不使用PHP,但它会抛出一些警告消息,并且没有值出现。我在下面解释我的代码 $mainArr=array(array("type"=>1,"name"=>"hello"),array("type"=>1,"name"=>"hii")); //echo json_encode($mainArr); foreach ($mainArr as $v) { if(!in_array(1, $v['type']
$mainArr=array(array("type"=>1,"name"=>"hello"),array("type"=>1,"name"=>"hii"));
//echo json_encode($mainArr);
foreach ($mainArr as $v) {
if(!in_array(1, $v['type'])){
$result['primary'][]=array();
}else{
$result['primary'][]=$v;
}
if(!in_array(2, $v['type'])){
$result['secondary'][]=array();
}else{
$result['secondary'][]=$v;
}
}
echo json_encode($result);
在这里,我需要检查type==2是否不存在于该数组中,它应该返回空数组,但它会抛出下面的消息
Warning: in_array() expects parameter 2 to be array, integer given in /opt/lampp/htdocs/test/arrchk.php on line 5
Warning: in_array() expects parameter 2 to be array, integer given in /opt/lampp/htdocs/test/arrchk.php on line 10
Warning: in_array() expects parameter 2 to be array, integer given in /opt/lampp/htdocs/test/arrchk.php on line 5
Warning: in_array() expects parameter 2 to be array, integer given in /opt/lampp/htdocs/test/arrchk.php on line 10
{"primary":[[],[]],"secondary":[[],[]]}
请帮助我解决此问题。您正在对标量值使用PHP的in_数组函数 $v['type']是一个整数,类似于
1 === $v['type']
将在数组元素而不是数组中搜索元素
<?php
$mainArr = array(
array(
"type" => 1,
"name" => "hello"
),
array(
"type" => 1,
"name" => "hii"
)
);
//echo json_encode($mainArr);
foreach ($mainArr as $v) {
if (!in_array(1, $v)) {
$result['primary'][] = array();
} else {
$result['primary'][] = $v;
}
if (!in_array(2, $v)) {
$result['secondary'][] = array();
} else {
$result['secondary'][] = $v;
}
}
echo json_encode($result);
?>
使用函数。例如:
foreach ($mainArr as $v) {
if (!array_search('1', $v)) {
$result['primary'][]=array();
} else {...}
如果我改变了一种类型=2,而另一种类型为1,则不会出现正确的输出。
foreach ($mainArr as $v) {
if (!array_search('1', $v)) {
$result['primary'][]=array();
} else {...}