我需要一些帮助。我需要检查天气,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'])){
$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":[[],[]]}
请帮我解决此问题。
答案 0 :(得分:1)
您在标量值上使用PHP的in_array函数。
$ v [' type']是一个整数,像
这样的简单比较1 === $v['type']
将完成这项工作
答案 1 :(得分:0)
您搜索数组元素中的元素而不是数组。
<?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);
?>
答案 2 :(得分:0)
$mainArr=array(array("type"=>1,"name"=>"hello"),array("type"=>1,"name"=>"hii"));
//echo json_encode($mainArr);
foreach ($mainArr as $v => $values) {
if(!in_array(1, $values['type'])){
$result['primary'][]=array();
}else{
$result['primary'][]=$values;
}
if(!in_array(2, $values['type'])){
$result['secondary'][]=array();
}else{
$result['secondary'][]=$values;
}
}
echo json_encode($result);
答案 3 :(得分:0)
使用array_search()功能。例如:
foreach ($mainArr as $v) {
if (!array_search('1', $v)) {
$result['primary'][]=array();
} else {...}