Php 从json数组获取数据并进行比较
您好,我有一个包含数组结构的json数组。我正在尝试根据特定键获取值。例如获得一个名为lower、值为9226的键。我已经实现了每个循环,但我无法进入它。我的比较声明中有一些问题Php 从json数组获取数据并进行比较,php,arrays,json,Php,Arrays,Json,您好,我有一个包含数组结构的json数组。我正在尝试根据特定键获取值。例如获得一个名为lower、值为9226的键。我已经实现了每个循环,但我无法进入它。我的比较声明中有一些问题 { "tax_structure": [ { "tax_data": { "lower": 0, "upper": 9225, "tax_rate": 10, "amount": 0
{
"tax_structure": [
{
"tax_data": {
"lower": 0,
"upper": 9225,
"tax_rate": 10,
"amount": 0
}
},
{
"tax_data": {
"lower": 9226,
"upper": 37450,
"tax_rate": 15,
"amount": 922.50
}
}
]
}
Php文件:
<?php
$expense=10000;
$str_data = file_get_contents("data.json");
$data = json_decode($str_data,true);
foreach ($data["tax_structure"] as $tax_data) {
foreach ($tax_data["tax_data"] as $key => $value) {
if($key=="lower" && $expense>$value) & ($key=="upper" &&$expense<$value)
{
//do something if expenses value falls between the lower and upper limit values of keys
}
}
}
?>
如果($key==“lower”&&&$expense>$value)&($key==“upper”&&&$expense我相信您正在寻找类似于以下内容的东西,那么您就不能这样做。 不需要第二个for循环
$expense = 10000;
$str_data = file_get_contents("data.json");
$data = json_decode($str_data,true);
foreach ($data["tax_structure"] as $tax_data_object) {
if($tax_data_object['tax_data']['lower'] < $expense && $tax_data_object['tax_data']['upper'] > $expense){
// Do stuff
}
}
$expense=10000;
$str_data=file_get_contents(“data.json”);
$data=json\u decode($str\u data,true);
foreach($data[“tax\u structure”]作为$tax\u data\u对象){
如果($tax_数据对象['tax_数据']['lower']<$expense&$tax_数据对象['tax_数据']['lower']>$expense){
//做事
}
}
编辑
您应该尝试打印($data)。这将显示数据数组的结构
如果您检查数据的结构,上面的代码应该是显而易见的
如果不是,以下是一些进一步学习的来源:
它不工作..我猜它没有进入循环。它没有打印echo命令。这段代码工作吗?也许你的data.json在另一个目录中?它是否显示错误?问题是我们使用循环。你只需要一个循环。现在它为所有json数组打印上下值。你想实现什么?不是吗hanks它是有效的。这是逻辑。如果你能解释的话,循环到json数组似乎很难。我们也可以使用for循环吗?谢谢,在这种情况下,理论上你可以使用for循环,但这样做没有好处。它需要更多的代码,速度也会更慢。
$expense = 10000;
$str_data = file_get_contents("data.json");
$data = json_decode($str_data,true);
foreach ($data["tax_structure"] as $tax_data_object) {
if($tax_data_object['tax_data']['lower'] < $expense && $tax_data_object['tax_data']['upper'] > $expense){
// Do stuff
}
}