Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php json_解码_Php_Json - Fatal编程技术网

php json_解码

php json_解码,php,json,Php,Json,在一些json代码中测试,比如[{a:“1”},{a:“2”},{a:“3”},{b:“2”}],我想使用json解码,获取数据并做出判断,如果第一个anod是==bnod还是第一个anod是=bnod。这里有一些代码 <?php header("Content-type: text/html; charset=utf-8"); $json = json_decode('[{"a":"1"},{"a":"2"},{"a":"3"},{"b":"2"}]',true); $number=1;

在一些json代码中测试,比如
[{a:“1”},{a:“2”},{a:“3”},{b:“2”}]
,我想使用json解码,获取数据并做出判断,如果第一个
a
nod是
==
b
nod还是第一个
a
nod是
=
b
nod。这里有一些代码

<?php
header("Content-type: text/html; charset=utf-8");
$json = json_decode('[{"a":"1"},{"a":"2"},{"a":"3"},{"b":"2"}]',true);
$number=1;
foreach($json as $num){
if($num['a']!=$num['b']){
    if($num['a']){
        echo 'a'.$number.''.$num['a'].'<br />'; 
    }
}else{
    if($num['a']){
        echo 'b'.$number.''.$num['a'].'<br />'; 
    }
}
$number++;
}
?>
我需要得到结果:

a11
b22
a33

如何比较不存在的数组字段

没有$num['b']字段,有这些字段,它的数组[4]
(索引0..3)

  • a:1
  • a:2
  • a:3
  • b:2
第一次迭代中的
$num
将保持不变

array("a"=>1);
因此,如果您想与
“b”:2
进行比较,您必须使用以下模式:

$cmpr = array_shift($json);
...
if($num != $cmpr)

数组\u shift:

如何比较不存在的数组字段

没有$num['b']字段,有这些字段,它的数组[4]
(索引0..3)

  • a:1
  • a:2
  • a:3
  • b:2
第一次迭代中的
$num
将保持不变

array("a"=>1);
因此,如果您想与
“b”:2
进行比较,您必须使用以下模式:

$cmpr = array_shift($json);
...
if($num != $cmpr)

数组\u shift:

当前未定义b时,您试图引用b变量。您必须首先循环并找到b变量。


当前未定义b时,您试图引用b变量。您必须首先循环并找到b变量。


你到底想做什么?如果第一个节点是==b节点,或第一个节点是!=b节点,然后呢?@netcoder,我想对所有的
$num['a']
做一个分析,找出哪个
$num['a']
等于
$num['b']
,比如
a11,b22,a33
“在一些json代码中测试”,甜心。嘿:),测试以供进一步研究。你到底想做什么?如果第一个节点是==b节点,或第一个节点是!=b节点,然后呢?@netcoder,我想对所有的
$num['a']
做一个测试,并确定哪个
$num['a']
等于
$num['b']
,比如
a11、b22、a33
“在一些json代码中测试”,甜心。嘿:),测试以供进一步研究。如果b的位置总是已知的话(数组的最后一个元素),则不是@MarekSebera你是对的,但他没有说明是否正确。正因为如此,我们不得不假设它不复杂。@cj333这一点也不复杂,我们的两个答案都会正确。您的问题如我所述,当未设置键b时,您指的是键b的值。好的,两个u都是对的,标记第一个anwser并给您两个+1,谢谢大家。@cj333如果不总是在最后一个数组中设置键b,数组\u pop将没有用。如果你不知道b的位置,请使用我的代码。不知道,如果b的位置总是已知的(数组的最后一个元素)@MarekSebera你是对的,但他没有指定是否知道。正因为如此,我们不得不假设它不复杂。@cj333这一点也不复杂,我们的两个答案都会正确。您的问题如我所述,当未设置键b时,您指的是键b的值。好的,两个u都是对的,标记第一个anwser并给您两个+1,谢谢大家。@cj333如果不总是在最后一个数组中设置键b,数组\u pop将没有用。如果您不知道b的位置,请使用我的代码。array_pop($json)将输出一个数组。它需要是array\u shift(array\u pop($json))才能实际工作。而且,只有在最终值中设置了b时,这才有效。是的,你说得对。我已经修正了我的答案。是的,这段代码只适用于给定的数据结构array\u pop($json)将输出一个数组。它需要是array\u shift(array\u pop($json))才能实际工作。而且,只有在最终值中设置了b时,这才有效。是的,你说得对。我已经修正了我的答案。是的,这段代码只适用于给定的数据结构