PHP - 如果一行包含字符串,则过滤数组
PHP - Filter an array if a row contains string
我有以下 API 输出,我基本上想在相关字段包含 'minutes' 时获取成员 ID 'minutes' 我如何使用数组过滤器做到这一点?
members:
239:
relative: "21 minutes ago"
941591:
relative: "5 hours ago"
4178:
relative: "59 minutes ago"
78:
relative: "2 hours ago"
(不确定正确的术语)但“relative”是成员 ID 下方的 header/field 名称,并且字段 relative 包含如下值:“59 分钟前”
我知道我可以通过遍历所有成员并检查字段来得到我的答案,但我不想这样做
有效答案:
$new = array_filter($idcall_array['members'], function ($var) {
return strpos($var['relative'], 'minutes') !== false;
});
提取 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);
我有以下 API 输出,我基本上想在相关字段包含 'minutes' 时获取成员 ID 'minutes' 我如何使用数组过滤器做到这一点?
members:
239:
relative: "21 minutes ago"
941591:
relative: "5 hours ago"
4178:
relative: "59 minutes ago"
78:
relative: "2 hours ago"
(不确定正确的术语)但“relative”是成员 ID 下方的 header/field 名称,并且字段 relative 包含如下值:“59 分钟前”
我知道我可以通过遍历所有成员并检查字段来得到我的答案,但我不想这样做
有效答案:
$new = array_filter($idcall_array['members'], function ($var) {
return strpos($var['relative'], 'minutes') !== false;
});
提取 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);