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

检查是否在PHP数组的元素中设置了值

如何解决检查是否在PHP数组的元素中设置了值

我有一个名为$users的以下数组:

$users [2 elements]
0: 
(array) [4 elements]
id: (string) "5"
user_id: (null) 5
email: (string) "test@test.com"
activated: (integer) 0 

1: 
(array) [4 elements]
id: (string) "6"
user_id: (null) 6
email: (string) "test1@test.com"
activated: (integer) 1 

仅当数组的任何元素的activated设置为1时,我才想在HTML中显示某些内容

我尝试了if( in_array(['actived'] == 1,$users)),但没有成功。

我该如何实现?

解决方法

尝试这个if($users->activated == 1)

,

使用array_column()获取所有activated值并在其中搜索:

if (in_array(1,array_column($users,'activated'),true))
,

您可以在循环中迭代数组时执行

foreach ($users as $user) {
    if ($user['activated'] === 1) {
        // echo html here
    }
}

或压缩在html标记内:

<?php foreach ($users as $user): ?>
    <?php if ($user['activated'] === 1): ?>
    <tr>
        <td><?php echo $user['email']; ?></td> // and others
    </tr>
    <?php endif; ?>
<?php endforeach; ?>

或者您可以使用array_filter过滤掉内部的所有项目:

$filtered_users = array_filter($users,function($user) {
    return $user['activated'] === 1; // get all user with activated key with value 1
});

当然,如果它来自mysql db,那么最好使用WHERE子句:

SELECT id,user_id,email,activated FROM users WHERE activated = 1

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