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