PHP 多维数组 - 计算实例数

标签 php arrays multidimensional-array

我在 PHP 中的多维数组方面遇到了一些困难。我是 PHP 新手,所以请注意我可能会被认为是一个菜鸟。

我想要实现的目标:我使用 ExpressionEngine 作为我的 CMS,并使用 Freeform Pro 来记录调查的答案。答案的值为 1、2、3、4 或 5。一切正常。然后我使用 SQL 查询从数据库中提取保存的数据。这就是事情开始变得复杂的地方。我需要调查中每个问题的平均值。因此,合乎逻辑的做法(我认为)是提取每个问题的数据并将其放入数组中:

$tva_1 = array();
$tva_2 = array();
$tva_3 = array();
$tva_4 = array();

SELECT form_field_259, form_field_260, form_field_261, form_field_262 FROM exp_freeform_form_entries_13 WHERE status='open'

array_push($tva_1, ('{form_field_259}'));
array_push($tva_2, ('{form_field_260}'));
array_push($tva_3, ('{form_field_261}'));
array_push($tva_4, ('{form_field_262}'));

请记住,$tva_1 中可能有 5 个变量,例如:2、4、3、1、4。$tva_2 也是如此,依此类推。

因此,一旦我将该数据分配给各个 tva_ 数组,我就需要将这四个数组放入另一个数组中,即 $allNumberArray:

$allNumberArray = array($tva_1, $tva_2, $tva_3, $tva_4);

现在如果我尝试 print_r($allNumberArray);它向我显示所有数据都在那里,并且一切都按预期运行。

Array
(
    [0] => Array
        (
            [0] => 3
            [1] => 5
            [2] => 2
            [3] => 5
            [4] => 3
        )

    [1] => Array
        (
            [0] => 3
            [1] => 2
            [2] => 4
            [3] => 3
            [4] => 3
        )

    [2] => Array
        (
            [0] => 5
            [1] => 4
            [2] => 3
            [3] => 1
            [4] => 3
        )

    [3] => Array
        (
            [0] => 4
            [1] => 2
            [2] => 5
            [3] => 1
            [4] => 3
        )

问题是:我需要计算每个评级的使用次数。例如,我可以从上面的 print_r 中看到 5 显示了 4 次,4 显示了 3 次,3 显示了 7 次,等等。我尝试过如下的计数函数,但这只适用于一维数组(我认为):

$userStrongAgree = count(array_filter($allNumberArray, function ($agreementFive) { return $agreementFive == 5; }));

我已经被这个问题困扰了一天半了,我的截止日期是明天下午,所以我开始有点担心。我真的很感激任何帮助或只是指向正确方向的指示。

非常感谢

最佳答案

尝试将所有项目插入 uniquq 数组并使用 array_count_values() 进行计数:

<?php
$array=$allNumberArray; //your Array

$new_arr=array();
foreach($array as $key=>$value){
    foreach ($value as $key2 => $value2) {
        array_push($new_arr,$value2);
        }
}
$last_arr=array_count_values($new_arr);
foreach ($last_arr as $key3 => $value3) {
    echo $key3.' is '.$value3.' times<br>';
    }
?>

关于PHP 多维数组 - 计算实例数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28326275/

相关文章:

javascript - 分页链接不正确,prestashop

javascript - 使用链接 onClick() 切换传递给函数的值以对数据库结果顺序 ASC 或 DESC 进行排序

Java GUI - 从数组中获取随机值

python - 请澄清以下Python NumPy数组初始化和拼接示例

Java:防止数组越界

php - facebook og 图像共享以突出显示功能

javascript - 如何在 onclick 事件上重新加载 jquery?

python - 如何迭代 Numpy 数组的初始维度?

javascript - Kadane 的算法没有为最大的连续总和返回正确的值?

Ruby,如何从两个数组创建哈希?