我正在使用 array_filter 从数组中过滤掉 0 和 null。
代码:
while ($row1 = $sth1->fetch(PDO::FETCH_ASSOC)){
$rows_shared_id[$row1['shared_id']]['shared_id'] = $row1['shared_id'];
}
$erows_shared_id = array_filter($rows_shared_id);
foreach($erows_shared_id as $evalue){
echo $evalue['shared_id'] . "<br>";
}
没有 array_filter 的结果有多个值为 0 或 null 的单元格。使用 array_filter,它会过滤掉所有的 0 和空值,除了每个的第一个。因此,我剩下一个包含一个 0 和一个空值的数组。为什么它要删除所有内容,但要删除第一个,我该如何解决?谢谢!
最佳答案
array_filter
适用于单级数组,但您的是二级数组。
尝试将 array_filter
映射到数组的子数组:
$erows_shared_id = array_map('array_filter', $rows_shared_id);
然后您可以再次过滤该数组以删除任何具有空数组作为子项的键。
$erows_shared_id = array_filter(array_map('array_filter', $rows_shared_id));
关于php - array_filter 留下一个 0 和一个 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39628201/