如何检查php中是否存在键/值对?
我得到了每个运动员的学校名单。如果运动员在对象中的状态为如何检查php中是否存在键/值对?,php,Php,我得到了每个运动员的学校名单。如果运动员在对象中的状态为committed:true,我只想显示该学校。否则,我想返回所有属性 以下是我的数据: ... "offers": [ { "school": "Foo School", "committed": true }, { "school": "Bar School", "committed": false } ] ... 在上
committed:true
,我只想显示该学校。否则,我想返回所有属性
以下是我的数据:
...
"offers": [
{
"school": "Foo School",
"committed": true
},
{
"school": "Bar School",
"committed": false
}
]
...
在上面的例子中,我只想显示“Foo School”。
但是如果committed
属性都是false
我想显示“Foo-Schoo”和“Bar-School”
这是我目前拥有的,但无论如何我都会返回
foreach ($object['athlete']['offers'] as $offer) {
if (isset($offer['committed']) && $offer['committed'] == 1) {
// return single school
} else {
// push into array & return?
}
}
谢谢你的建议 我想这就是你想要的,如果我错了,请纠正我。如果全部为false,则返回全部。如果一个或多个为真,则返回第一个为真:
<?php
$offers = array(
array("school" => "Foo School",
"committed" => true
),
array(
"school" => "Bar School",
"committed" => false
));
$fullReturn = "";
$flag = false;
foreach ($offers as $offer) {
if (isset($offer['committed']) && $offer['committed']) {
echo $offer['school'];
$flag = true;
break;
} else {
$fullReturn .= $offer['school'] . "<br />";
}
}
if (!$flag) {
echo $fullReturn;
}
?>
如果您有两个数组,并且希望检查$haystack数组是否具有最小$needle数组元素,并且它们是否匹配,则可以使用该函数
函数数组匹配($needle,$haystack){
$haystack=(数组)$haystack;
$针=(数组)$针;
foreach($key=>$value){
如果(修剪($value)!=修剪($haystack[$key])){
返回false;
}
}
返回true;
}
那么问题出在哪里?如果offers数组中的任何offer的属性为committed:true
则只返回该offer。否则返回数组中的所有提供。是否可能是混合数组/对象导致冲突?您可能需要$offer->committed
的语法。您在这里使用的是json\u decode()
吗?谢谢,@nfn neil!我错过了中断;因为我没有这个-系统一直运行,不管发生什么都会返回所有结果。break
不会产生任何影响!设置全局变量是@DamonI添加中断的主要原因,以防止其与其余变量重复。