php json_解码
在一些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;
[{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时,这才有效。是的,你说得对。我已经修正了我的答案。是的,这段代码只适用于给定的数据结构