PHP-如何计算值第二个foreach循环?
我有一个代码,我正试图使工作,但我就是不能! 我有2个数组:1->Diares 2->每个日记条目对应的值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] =&
$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>";
}