如何从数组中查找并汇总不同的数字?

时间:2017-03-16 19:28:04

标签: php arrays sum

我已经阅读了一些文字和搜索主题,但没有任何帮助。我是PHP的初学者。我有数组,变量$qA01_1最多$qA30_5,它们的值可以是0或1或5.从数组我希望找到值为1的所有变量并生成总和。对于数字5也是如此。

        $qA01_1 = $_SESSION['qA01_1'];     
        $qA01_2 = $_SESSION['qA01_2'];
        $qA01_3 = $_SESSION['qA01_3'];
        $qA01_4 = $_SESSION['qA01_4'];
        $qA01_5 = $_SESSION['qA01_5'];
        $qA02_1 = $_SESSION['qA02_1'];     
        $qA02_2 = $_SESSION['qA02_2'];
        $qA02_3 = $_SESSION['qA02_3'];
        $qA02_4 = $_SESSION['qA02_4'];
        $qA02_5 = $_SESSION['qA02_5'];
        $qA03_1 = $_SESSION['qA03_1'];     
        $qA03_2 = $_SESSION['qA03_2'];
        $qA03_3 = $_SESSION['qA03_3'];
        $qA03_4 = $_SESSION['qA03_4'];
        $qA03_5 = $_SESSION['qA03_5'];
        $qA04_1 = $_SESSION['qA04_1'];     
        $qA04_2 = $_SESSION['qA04_2'];
        $qA04_3 = $_SESSION['qA04_3'];
        $qA04_4 = $_SESSION['qA04_4'];
        $qA04_5 = $_SESSION['qA04_5'];
        $qA05_1 = $_SESSION['qA05_1'];     
        $qA05_2 = $_SESSION['qA05_2'];
        $qA05_3 = $_SESSION['qA05_3'];
        $qA05_4 = $_SESSION['qA05_4'];
        $qA05_5 = $_SESSION['qA05_5'];
        $qA06_1 = $_SESSION['qA06_1'];     
        $qA06_2 = $_SESSION['qA06_2'];
        $qA06_3 = $_SESSION['qA06_3'];
        $qA06_4 = $_SESSION['qA06_4'];
        $qA06_5 = $_SESSION['qA06_5'];
        $qA07_1 = $_SESSION['qA07_1'];     
        $qA07_2 = $_SESSION['qA07_2'];
        $qA07_3 = $_SESSION['qA07_3'];
        $qA07_4 = $_SESSION['qA07_4'];
        $qA07_5 = $_SESSION['qA07_5'];
        $qA08_1 = $_SESSION['qA08_1'];     
        $qA08_2 = $_SESSION['qA08_2'];
        $qA08_3 = $_SESSION['qA08_3'];
        $qA08_4 = $_SESSION['qA08_4'];
        $qA08_5 = $_SESSION['qA08_5'];
        $qA09_1 = $_SESSION['qA09_1'];     
        $qA09_2 = $_SESSION['qA09_2'];
        $qA09_3 = $_SESSION['qA09_3'];
        $qA09_4 = $_SESSION['qA09_4'];
        $qA09_5 = $_SESSION['qA09_5'];
        $qA10_1 = $_SESSION['qA10_1'];     
        $qA10_2 = $_SESSION['qA10_2'];
        $qA10_3 = $_SESSION['qA10_3'];
        $qA10_4 = $_SESSION['qA10_4'];
        $qA10_5 = $_SESSION['qA10_5'];
        $qA11_1 = $_SESSION['qA11_1'];     
        $qA11_2 = $_SESSION['qA11_2'];
        $qA11_3 = $_SESSION['qA11_3'];
        $qA11_4 = $_SESSION['qA11_4'];
        $qA11_5 = $_SESSION['qA11_5'];
        $qA12_1 = $_SESSION['qA12_1'];     
        $qA12_2 = $_SESSION['qA12_2'];
        $qA12_3 = $_SESSION['qA12_3'];
        $qA12_4 = $_SESSION['qA12_4'];
        $qA12_5 = $_SESSION['qA12_5'];
        $qA13_1 = $_SESSION['qA13_1'];     
        $qA13_2 = $_SESSION['qA13_2'];
        $qA13_3 = $_SESSION['qA13_3'];
        $qA13_4 = $_SESSION['qA13_4'];
        $qA13_5 = $_SESSION['qA13_5'];
        $qA14_1 = $_SESSION['qA14_1'];     
        $qA14_2 = $_SESSION['qA14_2'];
        $qA14_3 = $_SESSION['qA14_3'];
        $qA14_4 = $_SESSION['qA14_4'];
        $qA14_5 = $_SESSION['qA14_5'];
        $qA15_1 = $_SESSION['qA15_1'];     
        $qA15_2 = $_SESSION['qA15_2'];
        $qA15_3 = $_SESSION['qA15_3'];
        $qA15_4 = $_SESSION['qA15_4'];
        $qA15_5 = $_SESSION['qA15_5'];
        $qA16_1 = $_SESSION['qA16_1'];     
        $qA16_2 = $_SESSION['qA16_2'];
        $qA16_3 = $_SESSION['qA16_3'];
        $qA16_4 = $_SESSION['qA16_4'];
        $qA16_5 = $_SESSION['qA16_5'];
        $qA17_1 = $_SESSION['qA17_1'];     
        $qA17_2 = $_SESSION['qA17_2'];
        $qA17_3 = $_SESSION['qA17_3'];
        $qA17_4 = $_SESSION['qA17_4'];
        $qA17_5 = $_SESSION['qA17_5'];
        $qA18_1 = $_SESSION['qA18_1'];     
        $qA18_2 = $_SESSION['qA18_2'];
        $qA18_3 = $_SESSION['qA18_3'];
        $qA18_4 = $_SESSION['qA18_4'];
        $qA18_5 = $_SESSION['qA18_5'];
        $qA19_1 = $_SESSION['qA19_1'];     
        $qA19_2 = $_SESSION['qA19_2'];
        $qA19_3 = $_SESSION['qA19_3'];
        $qA19_4 = $_SESSION['qA19_4'];
        $qA19_5 = $_SESSION['qA19_5'];
        $qA20_1 = $_SESSION['qA20_1'];     
        $qA20_2 = $_SESSION['qA20_2'];
        $qA20_3 = $_SESSION['qA20_3'];
        $qA20_4 = $_SESSION['qA20_4'];
        $qA20_5 = $_SESSION['qA20_5'];
        $qA21_1 = $_SESSION['qA21_1'];     
        $qA21_2 = $_SESSION['qA21_2'];
        $qA21_3 = $_SESSION['qA21_3'];
        $qA21_4 = $_SESSION['qA21_4'];
        $qA21_5 = $_SESSION['qA21_5'];
        $qA22_1 = $_SESSION['qA22_1'];     
        $qA22_2 = $_SESSION['qA22_2'];
        $qA22_3 = $_SESSION['qA22_3'];
        $qA22_4 = $_SESSION['qA22_4'];
        $qA22_5 = $_SESSION['qA22_5'];
        $qA23_1 = $_SESSION['qA23_1'];     
        $qA23_2 = $_SESSION['qA23_2'];
        $qA23_3 = $_SESSION['qA23_3'];
        $qA23_4 = $_SESSION['qA23_4'];
        $qA23_5 = $_SESSION['qA23_5'];
        $qA24_1 = $_SESSION['qA24_1'];     
        $qA24_2 = $_SESSION['qA24_2'];
        $qA24_3 = $_SESSION['qA24_3'];
        $qA24_4 = $_SESSION['qA24_4'];
        $qA24_5 = $_SESSION['qA24_5'];
        $qA25_1 = $_SESSION['qA25_1'];     
        $qA25_2 = $_SESSION['qA25_2'];
        $qA25_3 = $_SESSION['qA25_3'];
        $qA25_4 = $_SESSION['qA25_4'];
        $qA25_5 = $_SESSION['qA25_5'];
        $qA26_1 = $_SESSION['qA26_1'];     
        $qA26_2 = $_SESSION['qA26_2'];
        $qA26_3 = $_SESSION['qA26_3'];
        $qA26_4 = $_SESSION['qA26_4'];
        $qA26_5 = $_SESSION['qA26_5'];
        $qA27_1 = $_SESSION['qA27_1'];     
        $qA27_2 = $_SESSION['qA27_2'];
        $qA27_3 = $_SESSION['qA27_3'];
        $qA27_4 = $_SESSION['qA27_4'];
        $qA27_5 = $_SESSION['qA27_5'];
        $qA28_1 = $_SESSION['qA28_1'];     
        $qA28_2 = $_SESSION['qA28_2'];
        $qA28_3 = $_SESSION['qA28_3'];
        $qA28_4 = $_SESSION['qA28_4'];
        $qA28_5 = $_SESSION['qA28_5'];
        $qA29_1 = $_SESSION['qA29_1'];     
        $qA29_2 = $_SESSION['qA29_2'];
        $qA29_3 = $_SESSION['qA29_3'];
        $qA29_4 = $_SESSION['qA29_4'];
        $qA29_5 = $_SESSION['qA29_5']; 
        $qA30_1 = $_POST['qA30_1'];
        $qA30_2 = $_POST['qA30_2'];
        $qA30_1 = (isset($_POST['qA30_1'])) ? $_POST['qA30_1'] : 0;
        $qA30_2 = (isset($_POST['qA30_2'])) ? $_POST['qA30_2'] : 0;
        $qA30_3 = (isset($_POST['qA30_3'])) ? $_POST['qA30_3'] : 0;
        $qA30_4 = (isset($_POST['qA30_4'])) ? $_POST['qA30_4'] : 0;
        $qA30_5 = (isset($_POST['qA30_5'])) ? $_POST['qA30_5'] : 0;

这是我的建议不起作用。我应该用“数组”做点什么。

// Sum of all numbers 1
$sumOne = 0;
                for ($i = 0; $i <= 3; $i++) {
                    for($j = 0; $j <= 9; $j++) {
                        for($k = 1; $k <= 5; $k++){
                            $u = 'qA_' . $i . $j. '_' . $k;
                            if ($u==1){
                                $sumOnet+=1;
                                        }
                                                  }
                                                }
                                            }

        echo "<br/>SumOne:" . " " . round($sumOne[0], 0);

2 个答案:

答案 0 :(得分:0)

你真的应该坚持使用数组。如果在$_SESSION数组中定义一个数组并使用它将更简单:

$_SESSION['data']['qA01_1'] = 0;     
$_SESSION['data']['qA01_2'] = 1;
$_SESSION['data']['qA01_3'] = 5;

$counts = array_count_values($_SESSION['data']);

if(isset($counts[0])) { echo $counts[0]; } // sum of any 0s is 0 so here is the count
if(isset($counts[1])) { echo $counts[1]; } // sum of any 1s will be the count
if(isset($counts[5])) { echo $counts[5] * 5; }

答案 1 :(得分:0)

如果我正确理解了这个问题,您需要总结数组中的所有单个值。

您可以使用array_count_values(),它会返回值本身为关键值的每个值的出现次数:

foreach (array_count_values($_SESSION) as $value => $count) {
    echo 'sum of ' . $value . ' values: ' . ($value * $count) . "<br>";
}

不知道POST变量在哪里适合......