[英]PHP check if array of arrays has searching value of key in atleast one of them
我有一个数组,其中包含每天的游戏数据:
"days" => [
"2019-07-31" => [
"3" => [
'id' => 3,
'type' => normal,
'teams' => [
'teamA', 'teamB',
],
'winnerTeam' => 'teamB',
],
"4" => [
'id' => 4,
'type' => ranked,
'teams' => [
'teamC', 'teamD',
],
'winnerTeam' => 'teamC',
],
],
"2019-07-30" => [
"1" => [
'id' => 1,
'type' => normal,
'teams' => [
'teamA', 'teamC',
],
'winnerTeam' => 'teamA',
],
"2" => [
'id' => 2,
'type' => normal,
'teams' => [
'teamB', 'teamD',
],
'winnerTeam' => 'teamC',
],
],
];
我想获取有关所有排名游戏的数据,但在此之前,我想检查一下是否有排名游戏发生。 有人比说说一切都知道更优雅的方法吗? 所以我的目标是在获取数据之前检查是否有任何game['type'] === 'ranked'
您可以使用array-column和array-count-values来实现。
对于每一天,使用array_column
获取所有类型,然后对其计数并返回,如果在返回数组中设置了“ ranked”类型。
考虑以下:
foreach($arr["days"] as $day => $a) {
$aaa = array_count_values(array_column($a, "type"));
if (isset($aaa['ranked']))
echo "Found in $day \n";
}
直播示例: 3v4l
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.