Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将多维数组php中所有id值的子数组计数限制为5?_Php_Mysql - Fatal编程技术网

如何将多维数组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。非常感谢!它就像一个符咒。