-1

嗨 frnds,因为我是 PHP 新手,我被困在数组修改的某个地方。问题是我正在从我的一个查询到数据库中获取一个数组。现在我处于一种情况,我必须用它的计数来形成一个相同类型的数组数组。我不知道我会得到什么 id 或名称,但我必须将它们转换为一个通用名称数组和 Id,它是我得到的数组中的计数。

我从查询中得到的数组 -

Array ( [0] => Array ( [type_id] => 1 [name] => VVIP ) [1] => Array ( [type_id] => 1 [name] => VVIP ) [2] => Array ( [type_id] => 2 [name] => Normal ) [3] => Array ( [type_id] => 2 [name] => Normal ) ) 

转换成数组

Array ( [0] => Array ( [type_id] => 1 [name] => VIP [count] => 2 ) [1] => Array ( [type_id] => 2 [name] => Normal [count] => 2 ) ) 
4

3 回答 3

1

您说这个数组来自数据库,也许您可​​以在数据库中计数?

SELECT type_id, name, count(*) FROM yourTable GROUP BY type_id, name;
于 2013-08-08T13:12:48.533 回答
0

您应该在SQL代码中进行计数,它将自动成为数组的一部分,不需要转换。

COUNT()你的朋友看到​​这里了吗

于 2013-08-08T13:11:50.447 回答
0
$out = array();
foreach ($arr as $key => $value){
    $dex = $value['type_id'];
    if (isset($out[$dex])){
        $out[$dex]['count']++;
    } else {
        $out[$dex] = $value;
        $out[$dex]['count'] = 1;
    }
}
$out = array_values($out); 
dump_r($out);

输出:

Array
(
    [0] => Array
        (
            [type_id] => 1
            [name] => VVIP
            [count] => 2
        )

    [1] => Array
        (
            [type_id] => 2
            [name] => Normal
            [count] => 2
        )

)
于 2013-08-09T09:15:47.913 回答