var html = ''
if (menuBar.menu_flag_link == 0) {
var link_menu =
<NavLink
to='javascript:;'
exact>menuBar[i].menu_title</
} else {
var link_menu =
<NavLink
to="/"
exact>menuBar[i].menu_title</NavLink>
}
html += '<li>' + link_menu
console.log(html) ==> <li>[object Object] // after being executed
console.log(html) ==> <li><a href="/">Dashboard</a> // which are expected
例如:
value1 = 1
value2 = 2
value3 = 3
value4 = 4
value5 = 5
value6 = 6
value7 = 7
value8 = 8
value9 = 9
value10 = 10
value11 = 11
value12 = 12
我想每3次循环计算$ data,结果是
结果lopping1 = 6
结果lopping2 = 15
结果lopping3 = 24
结果lopping4 = 33
注意:
6 = 1 + 2 + 3
15 = 4 + 5 + 6
24 = 7 + 8 + 9
33 = 10 + 11 + 12
我该怎么办?
答案 0 :(得分:1)
这是Blade Syntax的回答:
@foreach(array_chunk($group, 3) as $value)
<td>
@php
echo array_reduce($value, function($sum, $item) {
$sum +=$item->value;
return $sum;
})
@endphp
</td>
@endforeach
或纯PHP:
<?php
$groupSum = [];
foreach (array_chunk($group, 3) as $value) {
$groupSum[] = array_reduce($value, function ($sum, $item) {
$sum += $item->value;
return $sum;
});
}
print_r($groupSum);
这一切都是因为作者问题中有对象。
答案 1 :(得分:0)
你需要计算迭代并保存它。就像这样。
$collection=array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
$count=1;
$result=array();
foreach ($collection as $value) {
$result[]=$value;
$count++;
if ($count==4) {
$data=array_sum($result);
$result = array_map(function($v){ return 0; }, $result);
$count=1;
echo $data;
echo '<br>';
}
}
答案 2 :(得分:0)
您可以使用array_chunk和array_sum
$array_number = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
$test = array_chunk($array_number, 3);
$i = 0;
while($i < count($test)){
echo array_sum($test[$i]);
$i++;
}
对于你,也许在选项之下
@foreach ($group->chunk(3) as $chunk)
{{$chunk->sum()}}
@endforeach
答案 3 :(得分:0)
您可以将数组循环到i+3
并相应地添加值。
如果你的数组的元素是3的倍数,那么你可以这样做
for($i=2; $i<count($arr); $i+=3) {
$data = ($arr[$i] + $arr[$i-1] + $arr[$i-2]);
echo "<td>".$data."</td>";
}
如果您的数组的元素少于3,那么您可以执行此操作
for($i=0; $i<count($arr); $i++) {
$data += $arr[$i];
}
echo "<td>".$data."</td>";
如果你的数组的元素大于3但不是3的倍数,那么你可以这样做
$post = count($arr) % 3;
for($i=2; $i<(count($arr) - $post); $i+=3) {
$data = ($arr[$i-1] + $arr[$i-2] + $arr[$i]);
echo "<td>".$data."</td>";
}
$last = "";
for($i=(count($arr) - $post); $i<count($arr); $i++) {
$last += $arr[$i];
}
echo "<td>".$last."</td>";
结合所有条件
if (count($arr) < 3) {
$data = "";
for($i=0; $i<count($arr); $i++) {
$data += $arr[$i];
}
echo "<td>".$data."</td>";
}else if (count($arr) % 3 == 0) {
for($i=2; $i<count($arr); $i+=3) {
$data = ($arr[$i-1] + $arr[$i-2] + $arr[$i]);
echo "<td>".$data."</td>";
}
}else{
$post = count($arr) % 3;
for($i=2; $i<(count($arr) - $post); $i+=3) {
$data = ($arr[$i-1] + $arr[$i-2] + $arr[$i]);
echo "<td>".$data."</td>";
}
$last = "";
for($i=(count($arr) - $post); $i<count($arr); $i++) {
$last += $arr[$i];
}
echo "<td>".$last."</td>";
}