如何检查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添加中断的主要原因,以防止其与其余变量重复。