php - 在php中计算数组中的元素

标签 php arrays

我的计数有问题,请帮助我。

我有一个数组:

Array
(
    [0] => Array
        (
            [message] => non
            [msg_cnt] => 1
        )

    [1] => Array
        (
            [message] => oui
            [msg_cnt] => 1
        )

    [2] => Array
        (
            [message] => non
            [msg_cnt] => 1
        )

    [3] => Array
        (
            [message] => oui
            [msg_cnt] => 1
        )
    [4] => Array
        (
            [messsage] => yuop
            [msg_cnt]  => 1

)

现在我想得到:

Array
(
    [0] => Array
        (
            [message] => non
            [msg_cnt] => 2
        )

    [1] => Array
        (
            [message] => oui
            [msg_cnt] => 2
        )
    [2] => Array
        (
            [message] => youp
            [msg_cnt] => 1

)

我尝试了我的代码,但没有得到好的结果:

for($i=0;$i<count($aResultQuery);$i++){
        if($aResultQuery[$i]['messsage'] == $aResultQuery[$i+1]['messsage']){
            $aResultQuery[$i+1]['msg_cnt']++;
            unset($aResultQuery[$i]);
        }
    }

请帮帮我。让我知道,这是否是获取此数组的解决方案?

最佳答案

您可以使用另一个容器来合并计数,为每个计数设置一个初始值,然后在循环的其余部分将它们相加。示例:

$count = array();
foreach($aResultQuery as $values) {
    if(!isset($count[$values['message']])) {
        $count[$values['message']] = array('message' => $values['message'], 'msg_cnt' => 0);
    }
    $count[$values['message']]['msg_cnt'] += $values['msg_cnt'];
}

$count = array_values($count); // simple reindex

echo '<pre>';
print_r($count);

Sample Output

关于php - 在php中计算数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27267235/

相关文章:

php - 多值、多维数组作为单个数组

c - 在 C 中通过数组导航的指针问题

c - C 中的文件输入和数组指针

c++ - 本地定义的Double数组使程序崩溃

PHP PDO MySQL LIKE 和准备好的语句

php - symfony 2 中的 Amazon SES 反弹处理

php - 如何修复 PHP 中的 'Creating default object from empty value' 警告

java - 如何将数组插入哈希表而无需在 Java 中进行初始化?

php - CodeIgniter - 类 CI_DB_mysqli_result 的对象无法转换为字符串

javascript - 如何在Vue中获取不是来自DB的数组索引