如何从php中的数组中获取多个数组?
How to get multiple arrays from an array in php?
我有他的下一个数组:
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
}
}
}
所以,我无法获取所有数组,请问如何做到这一点?
我会使用 Collection。
collect
你的数组:
$collection = collect([
[
"id" => 121
"user" => 368
],
[
"id" => 121
"user" => 3687
],
[
"id" => 500
"user" => 452
]
]);
- 使用
where
方法根据特定键的值进行过滤:
$filtered = $collection->where('id', 121);
$filtered->all();
/*
[
['id' => '121', 'user' => 368],
['id' => '121', 'user' => 3687],
]
*/
还有其他类似 where
的方法可用。一定要通读所有关于集合的文档,里面有很多很好的例子!
如果您现在确信应该为所有内容使用集合,请查看 Adam Wathan 的精彩书籍(和其他资源):Refactoring to Collections(非免费)
我有他的下一个数组:
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
}
}
}
所以,我无法获取所有数组,请问如何做到这一点?
我会使用 Collection。
collect
你的数组:
$collection = collect([
[
"id" => 121
"user" => 368
],
[
"id" => 121
"user" => 3687
],
[
"id" => 500
"user" => 452
]
]);
- 使用
where
方法根据特定键的值进行过滤:
$filtered = $collection->where('id', 121);
$filtered->all();
/*
[
['id' => '121', 'user' => 368],
['id' => '121', 'user' => 3687],
]
*/
还有其他类似 where
的方法可用。一定要通读所有关于集合的文档,里面有很多很好的例子!
如果您现在确信应该为所有内容使用集合,请查看 Adam Wathan 的精彩书籍(和其他资源):Refactoring to Collections(非免费)