배열 잘되는데요,,,,그런데
본문
왕계란님 등 여러분이 알려주셔서 잘됩니다.
<?
$result = [];
$str = $write[wr_1];
$arr = explode("|", $str);
for($i = 0, $j = 0; $i < count($arr); $i++) {
if($arr[$i] == 0) {
$j++;
continue;
}
$result[$j][] = $arr[$i];
}
$sum = array_map(function($result) {
return array_sum($result);
}, $result);
echo implode("|", $sum);
?>
원래 wr_1에
22|14|44|26|0|2|6|87|85|0||3|
이런식으로 들어가 있습니다,
0까지의 합산값
다음 0까지의 합산값을
22|14|44|26|0이 있던 요자리|2|6|87|85|0이 있던 요자리에||3|
이런식으로 위의 배열 $sum값을 넣고 싶습니다.
$result 및 $sum으로 합산값이 나왔는데
원래 있던 0의 자리에
$sum을 넣고 싶습니다.
echo implode("|", $sum);
이걸 어떻게 해야할지,,ㅋ
답변 1
$str = $write[wr_1]; <--이런 코드는 불필요
<?
//$write['wr_1'] = "22|14|44|26|0|2|6|87|85|0||3|";
$arr = explode("|", $write['wr_1']);
$sum=0;
for($i = 0; $i < count($arr); $i++) {
if($arr[$i] =='') continue;
if($arr[$i] == 0){ $arr[$i] = $sum; $sum=0;}
else $sum+= $arr[$i];
}
$wr_1 = implode('|', $arr);
?>
<input type='text' name='wr_1' value='<?=$wr_1?>'>