배열에서... 질문은 간단한데..내용은 어렵네요
본문
wr_1에
22|14|44|26|0|2|6|87|85|0||3|
이런식으로 들어가 있습니다,
0까지의 합산값
다음 0까지의 합산값을
wr_2필드에 배열로 집어넣고 싶은데 어떻게 할 수 있을까요?
답변 4
$result = [];
$str = "22|14|44|26|0|2|6|87|85|0||3|";
$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);
그냥 불러온 값을 반복문을 하고 | 구분자로 해서 변수를 지정하고 그값을 합산해서
배열로 만들면 될거같은데요
소스로 대답 못해서 미안합니다
$str = '22|14|44|26|0|2|6|87|85|0||3|';
$sum = 0;
$arrRes = [];
$arrNum = explode('|', $str);
foreach ($arrNum as $num) {
if (is_numeric($num)) {
if ($num > 0) {
$sum += $num;
} else {
$arrRes[] = $sum;
$sum = 0;
}
}
}
var_dump($arrRes);
$tx = "22|14|44|26|0|2|6|87|85|0||3| ";
list( $a, $b, $c ) = split( "|0|", $tx );
$a2 = split( "|", $a);
$b2 = split( "|", $b);
$newarr[] = array_sum( $a2 );
$newarr[] = array_sum( $b2 );
print_r( $newarr ); // --> array( 0=>.... , 1=>.... )
답변을 작성하시기 전에 로그인 해주세요.