【发布时间】:2021-08-19 19:59:39
【问题描述】:
我有他的下一个数组看起来像:
array:50 [▼
0 => array:39 [▶]
1 => array:39 [▶]
2 => array:39 [▶]
]
所以我想获取具有共同值的数组,例如:
array:39 [▼
"id" => 121
"user" => 368
]
array:39 [▼
"id" => 121
"user" => 3687
]
array:39 [▼
"id" => 500
"user" => 452
]
我想得到两个带有属性的数组 id 121,我试图用 foreach 循环数组看起来像:
foreach ($info as $val){
foreach($info as $f ){
if($f["id"]==$val["id"]){
//get the multiple arrays
}
}
}
所以,我无法获得所有数组,有什么想法可以做到这一点吗?
【问题讨论】:
-
通过您的示例很难猜出哪个是哪个,但我使用了类似(伪代码)
foreach($info as $key => $f ) { if ($f['id']==121) {var_dump($info[$key]);}} -
您尝试迭代同一个数组两次,首先是
foreach ($info as $val),然后是foreach($info as $f )。内部循环应该超过$val,而不是$info。 -
不过,您在这里只需要
array_filter,并使用自定义回调将每个元素的id键与您想要的值进行比较。 -
@El_Vanja 你的评论让我有了一个想法,谢谢
-
因为这被标记为 Laravel 那么还有
$filtered = collect($array)->where('id', '=', 121)的选项
标签: php arrays laravel foreach lumen