如何将多维数组php中所有id值的子数组计数限制为5?
我有一个多维输出数组,其结构如下:如何将多维数组php中所有id值的子数组计数限制为5?,php,mysql,Php,Mysql,我有一个多维输出数组,其结构如下: Array ( [0] => Array ( [id] => 5925 [fb_id] => 123 [description] => [video] => [thum] => ) [1] => Array
Array
(
[0] => Array
(
[id] => 5925
[fb_id] => 123
[description] =>
[video] =>
[thum] =>
)
[1] => Array
(
[id] => 7060
[fb_id] => 2344
[description] =>
[video] =>
[thum] =>
)
[2] => Array
(
[id] => 6579
[fb_id] => 123
[description] =>
[video] =>
)
)
这里,我想将具有相同“fb_id”的所有用户的子数组计数限制为5。每个fb_id只有5个子数组应该在最终输出数组中。任何帮助都是可观的。此处使用的原始数组称为
$original
,此代码将减少它并生成一个名为$new
的新数组。可以根据需要随意更改变量名
$new = [];
$count = [];
foreach ($original as $element) {
$fbid = $element['fb_id'];
if (!isset($count[$fbid])) {
$count[$fbid] = 0;
}
if ($count[$fbid] < 5) {
$new[] = $element;
$count[$fbid]++;
}
}
// New array with limited sub-arrays
print_r($new);
$new=[];
$count=[];
foreach($original as$element){
$fbid=$element['fb_id'];
如果(!isset($count[$fbid])){
$count[$fbid]=0;
}
如果($count[$fbid]<5){
$new[]=$element;
$count[$fbid]++;
}
}
//具有有限子阵列的新阵列
印刷(新);
您是如何获得此阵列的?是否来自MySQL数据库查询?您可以在SQL末尾使用LIMIT=5
将其限制为5行。这是一组非常复杂的查询,不能使用limit。理论上,我希望遍历数组,获取所有FBU id的所有子数组,并删除最后的子数组,以将每个FBU id的计数限制为5。非常感谢!它就像一个符咒。