我正在开发一个
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')));