PHP-如何计算值​第二个foreach循环?

PHP-如何计算值​第二个foreach循环?,php,foreach,Php,Foreach,我有一个代码,我正试图使工作,但我就是不能! 我有2个数组:1->Diares 2->每个日记条目对应的值 $diarioNum = array( [0] => 1 [1] => 2 [2] => 1 [3] => 3 [4] => 5 [5] => 1 [6] => 1 ); $vintoBookSX = array( [0] => -0.5 [1] => -0.4 [2] => -0.6 [3] => -0.4 [4] =&

我有一个代码,我正试图使工作,但我就是不能! 我有2个数组:1->Diares 2->每个日记条目对应的值

$diarioNum =  array( [0] => 1 [1] => 2 [2] => 1 [3] => 3 [4] => 5 [5] => 1 [6] => 1 );
$vintoBookSX = array( [0] => -0.5 [1] => -0.4 [2] => -0.6 [3] => -0.4 [4] => -0.4 [5] => -1 [6] => -1 );
在我的例子中,我有多个日记,在我推断数据的数据库中,数据不符合顺序,因此我必须执行以下代码:

<?php
    $con = array_count_values($diarioNum);
    foreach ($con as $key => $value) {  
     $pos = array_keys($diarioNum, $key);
     echo "Diario " .$key. "<br>";
      foreach ($pos as $ke => $val) {
        $vBKsx = $vintoBookSX[$val];
        echo $vBKsx . "<br>";       
      } 
   }
?>
我的数据库表:

现在我必须求和​​每本日记。 然后输出它必须是:

Diario 1
-3.1
Diario 2
-0.4
Diario 3
-0.4
Diario 5
-0.4

您能帮我吗?

您似乎使用了一种复杂的方法来实现这一点,我将在PHP端这样做:

$diarioNum =  [ 1, 2, 1, 3, 5, 1, 1 ];
$vintoBookSX = [ -0.5, -0.4, -0.6, -0.4, -0.4, -1, -1 ];

$result = [];

foreach ($diarioNum as $k => $day) {
    $result[$day][] = $vintoBookSX[$k];
}

print_r($result);

$sums = array_map('array_sum', $result);

print_r($sums);
在DBMS方面,可能有更好的方法来实现这一点。比如:

选择diarioNumero、SUMVintoBook\u SX 从你的桌子上 按重数分组 按日记顺序
这里还有一个解决方案

$diarioNum =  array(1, 2, 1, 3, 5, 1, 1 );
$vintoBookSX = array(-0.5, -0.4, -0.6, -0.4, -0.4, -1, -1 );

$result = array_fill_keys( array_unique($diarioNum), 0);

foreach ( $diarioNum as $key => $val ) {
    $result[ $val ] += $vintoBookSX[ $key ];
}
foreach ( $result as $key => $val ) {
    echo "Diario $key <br>";
    echo $val . "<br>";
}

您的$diarioNum中的键是否与$vintoBookSX的值匹配?是的,对于每个日记号码,我都有相应的值。它有效!对于数据库问题,这当然是最好的方法,但我总是尝试将请求保存到数据库。谢谢你的回答。
$diarioNum =  array(1, 2, 1, 3, 5, 1, 1 );
$vintoBookSX = array(-0.5, -0.4, -0.6, -0.4, -0.4, -1, -1 );

$result = array_fill_keys( array_unique($diarioNum), 0);

foreach ( $diarioNum as $key => $val ) {
    $result[ $val ] += $vintoBookSX[ $key ];
}
foreach ( $result as $key => $val ) {
    echo "Diario $key <br>";
    echo $val . "<br>";
}