배열 잘되는데요,,,,그런데 채택완료
왕계란님 등 여러분이 알려주셔서 잘됩니다.
<?
$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?>'>
답변에 대한 댓글 3개
22|14|44|26|여기|2|6|87|85|여기||3|
잘들어오는데요 나머지 값으 공백으로 할 수 없을까요?
나머지를 공백으로 해서 저장해버리면 기존에 들어잇던 값들을 알수가 없게 되는데
상관이 없다는 것인가요?
특히나 마지막 3은 아무 곳에도 쓰이지않고 버려지잖습니까?
어쨌던 아래처럼 수정하면 됩니다
else $sum+= $arr[$i]; ---> 수정
else{ $sum+= $arr[$i]; $arr[$i]='';}
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
간결하고 좋아요,,
시간나실때 다른 보수의뢰 좀,,ㅎ