我试图通过'field->值'将PHP foreach中的项目分组,并分别得到每个组的总和。下面的代码有效,但我觉得有一种更有效的方法吗?
提前致谢。
<?php
$number_1 = 0;
$number_2 = 0;
$number_3 = 0;
foreach ( $fields as $field ) {
if($field->value == 1) {
$number_1 += $field->number;
}
if($field->value == 2) {
$number_2 += $field->number;
}
if($field->value == 3) {
$number_3 += $field->number;
}
}
echo $number_1;
echo $number_2;
echo $number_3;
?>
答案 0 :(得分:1)
在这种情况下,您可以使用变量变量 一般来说,我宁愿推荐一个阵列,但这是你的选择。
->first()
数组版本。
foreach ( $fields as $field ) {
${"number_" . $field->value} += $field->number;
}
编辑的数字应该是值。
答案 1 :(得分:1)
不要使用单独的变量,请使用$field->value
作为索引的数组。
$numbers = array();
foreach ($fields as $field) {
if (isset($numbers[$field->value])) {
$numbers[$field->value] += $field->number;
} else {
$numbers[$field->value] = $field->number;
}
}