php - PHP - 检查任何嵌套数组是否不为空
问题描述
如果我有如下嵌套数组,如何检查是否有任何dates
数组不为空?
$myArray = [
'1' => [ 'dates' => []],
'2' => [ 'dates' => []],
'3' => [ 'dates' => []],
...
]
我知道我可以通过执行 foreach 循环来检查:
$datesAreEmpty = true;
foreach($myArray as $item) {
if (!empty($item['dates'])) {
$datesAreEmpty = false;
}
}
有没有更优雅的方法来做到这一点?
解决方案
可以使用 array_filter 迭代完成:
// This will be empty if all array elements are empty.
$filtered = array_filter($myArray, '_filter_empty');
/**
* Recursively remove empty elements from array.
*/
function _filter_empty($element) {
if (!is_array($element)) {
return !empty($element);
}
return array_filter($element, '_filter_empty');
}
推荐阅读
- python - Python Plotly Express:如何有条件地填充区域图?
- javascript - echart 调整大小返回未定义
- javascript - Neptune DB 不会将属性值更改为之前的值
- reactjs - 如何在 Typescript 中使用道具在情感/样式样式组件之间共享样式
- node.js - 如何计算数组内对象的值的总和,并使用 mongoose 聚合基于该总和添加一个字段?
- python - 高效的布尔磁盘包装掩码
- php - Laravel 文档多次上传未保存到数据库
- xcode - 文件选择上的 iCloud Drive 不起作用
- java-11 - Java11 中 AuthCacheValue 和 AuthCacheImpl 的替代方案是什么
- flutter - 如何在flutter中实现搜索listview