我知道这个网站上有数百个类似的问题,但我就是无法让我的代码正常工作...
我有这个 JSON
{
"version":"1.0.0",
"buildDate":20131029,
"buildTime":165127,
"lockPath":"..\\var\\lock",
"scriptPath":"..\\var\\lock",
"connections":
[
{
"name":"o016561",
"bez":"GEW-NRW",
"type":"OVPN"
},
{
"name":"o016482",
"bez":"GEW-BW",
"type":"OVPN"
},
{
"name":"o019998",
"bez":"GEW-SH",
"type":"OVPN"
}
]}
如何访问“名称”值以检查是否存在具有相同名称的现有文件? 我试过了
$json_config_data = json_decode(file_get_contents($json_path,true));
foreach($json_config_data->connections as $connectionName)
{
if($connectionName->name == $fileName)
{
$status = 1;
}
else
{
$status = 0;
}
}
但我总是得到 $status = 0
...
我认为对此有一个简单的解决方案,但我是 PHP 的新手,所以我很乐意提供任何帮助。
谢谢指教
最佳答案
您要为每次迭代重置 $status
的值,这意味着最后一个连接必须是正确的。您可能正在寻找 break
语句。
$json_config_data = json_decode(file_get_contents($json_path,true));
$status = 0; //Default to 0
foreach($json_config_data->connections as $connectionName)
{
if($connectionName->name == $fileName)
{
$status = 1;
break; //End the loop
}
}
关于PHP foreach 循环 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20190219/