php - 数组多维搜索返回所有多个键
问题描述
我有这个数组:
Array
(
[0] => Array
(
[id] => 15bw83nfo3wg4
[date] => 2019-01-01
[d_c] => D
[D] => 76181734.95
[C] => 0.00
)
[1] => Array
(
[id] => 15byrr7fo3wg4
[date] => 2019-01-02
[d_c] => D
[D] => 4000000.00
[C] => 0.00
)
[2] => Array
(
[id] => 15bzwubfo3wg4
[date] => 2019-01-02
[d_c] => K
[D] => 0.00
[C] => 1585500.00
)
[3] => Array
(
[id] => 15c0vlvfo3wg4
[date] => 2019-01-02
[d_c] => K
[D] => 0.00
[C] => 10000000.00
如何以日期为参数值在该数组中搜索并返回包含参数值的所有数组?
我已经尝试过了:
$date = '2019-01-02';
$key = array_search($date, array_column($data, 'date'));
$result = $data[$key];
但我得到的结果只是:
[1] => Array
(
[id] => 15byrr7fo3wg4
[date] => 2019-01-02
[d_c] => D
[D] => 4000000.00
[C] => 0.00
)
解决方案
使用 array_filter 函数
$result = array_filter($data, function($x) use ($date) { return $x['date'] == $date; });
推荐阅读
- docker - /host/path 不存在时 docker run -v /host/path:/container/path 权限问题
- sql - 使用精度计算金额
- reactjs - REDUX:尝试添加增量器和减量器,但它不起作用
- c# - C# .Net Core 3.1 SPA - 如何使中间件仅适用于单个路径
- javascript - 在 Wordpress Admin 中使用重复和增量 id 自动填充下拉列表
- google-admin-sdk - 标识符字段不包含在活动中:列表 Meet 报告
- html - 当我在同一行中使用 mat-input 和 mat-field 并添加 mat-chip 时,这两个字段不会保留在同一行
- oracle-apex - 加载 oracle apex 表单页面需要很长时间
- ios - App 因 Crashed 崩溃的原因是什么:com.apple.main-thread on firstIndex(where:)
- python - 你如何在 python 中使用用户定义的类来支持混合算术?