微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 有没有办法查看任何带有命名键的数组元素中的数据是否没有遍历整个数组?

我正在开发一个PHP 7应用程序,它有一个用户列表和他们的饮食要求.

如果任何用户有饮食要求,我需要显示指向可以显示它们的页面链接;如果没有用户有这样的要求,那么这不会显示.

我的$users数组看起来像这样:

[
    [ 'name' => 'Andy', 'diet' => '' ],
    [ 'name' => 'Bob', 'diet' => 'Vegeterian' ],
    [ 'name' => 'John', 'diet' => '' ]
]

所以在上面的例子中,Bob有饮食要求,需要显示按钮.

我决定是否显示按钮的计划涉及循环遍历整个$users数组,如果它找到任何非“空”的’diet’数组元素,它会显示按钮,例如

$show_dietary_button = false;
foreach ($users as $user) {
    if ($user['diet'] !== '') {
       $show_dietary_button = true;
       break;
    }
}

if ($show_dietary_button) {
    echo '<a href="#">Show Dietary Requirements</a>';
}

有没有更简单的方法来做到这一点,即一种方式来说,任何带有关键’饮食’的数组元素都有数据?

解决方法:

您可以使用array_filter和array_column的组合来提取所需的列,然后检查它是否为空…

if (!empty(array_filter(array_column($records, 'diet')))) {
    $show_dietary_button = true;
}

或者:

$show_dietary_button = !empty(array_filter(array_column($records, 'diet')));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐