我有以下 API 输出,我基本上想在相对字段包含“分钟”时获取成员 ID,如何使用数组过滤器来做到这一点?
[
'members' => [
239 => ['relative' => '21 minutes ago'],
941591 => ['relative' => '5 hours ago'],
4178 => ['relative' => '59 minutes ago'],
78 => ['relative' => '2 hours ago']
]
]
(不确定正确的术语)但“相对”是成员 ID 下方的标头/字段名称,并且相对字段包含以下值:“59 分钟前”
我知道我可以通过循环所有成员并检查字段来得到答案,但我不喜欢这样做
提取
relative
列并 grep 查找包含 minutes
的列:
$result = preg_grep('/minutes/', array_column($array['members'], 'relative'));
或过滤器:
$result = array_filter($array['members'],
function($v) {
return strpos($v['relative'], 'minutes') !== false;
});
然后拿到钥匙:
$ids = array_keys($result);