I have a string that contains 128.82
. I want to split/separate them in 100
and 28.82
.
var_dump(substr($kwh,0,3));
d
$input = '128.82'; // we’re doing math here, so actually we’ll be working with numbers,
// but PHP will automatically cast here
$slabs = [50, 100, 150, 200];
$result = [];
$previous_slab = 0;
foreach($slabs as $slab) {
// calculate distance between current and previous slab
$slab_distance = $slab - $previous_slab;
// if current remainder of input value is >= distance, add distance to result,
// and subtract distance from remainder of input
if( $input >= $slab_distance ) {
$result[] = $slab_distance;
$input -= $slab_distance;
}
// otherwise, add remainder as last item of result, and break out of the loop here
else {
$result[] = $input;
break;
}
$previous_slab = $slab;
}
var_dump($result);
Result for the given slabs:
array (size=3)
0 => int 50
1 => int 50
2 => float 28.82
Result for [50, 75, 150, 200]:
array (size=3)
0 => int 50
1 => int 25
2 => float 53.82