繁体   English   中英

如何检查 php 中是否存在键/值对?

[英]How can I check if a key/value pair exists in php?

我得到了每个运动员的学校名单。 如果一个运动员在对象中的状态为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?
    }
}

感谢您的任何建议!

我想这就是你要找的,如果我错了,请纠正我。 如果所有这些都是假的,那么它返回所有。 如果一个或多个为真,则返回第一个为真的:

<?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 数组的元素并且它们匹配与否,那么您可以使用该函数

    function array_match($needle, $haystack){
        $haystack =  (array) $haystack;
        $needle =  (array) $needle;
        foreach ($needle as $key => $value) {
            if( trim($value) != trim($haystack[$key]) ){
                return false;
            }
        }
        return true;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM