Php 使用范围val组织数组
我正在处理一个数值数组 在PHP中,我有一个如下所示的数值数组Php 使用范围val组织数组,php,arrays,range,Php,Arrays,Range,我正在处理一个数值数组 在PHP中,我有一个如下所示的数值数组 array('85kg' => '1', '87kg' => '3', '88kg' => '1', '90kg' => '3', '98kg' => '1') 我试图将其转换为范围,例如,在上述情况下: array('85kg-88kg' => '5', '89kg-92kg' => '3', '97kg-100kg' => '1') 射程3kg,任意键。。 我不知道如何将其转换
array('85kg' => '1', '87kg' => '3', '88kg' => '1', '90kg' => '3', '98kg' => '1')
我试图将其转换为范围,例如,在上述情况下:
array('85kg-88kg' => '5', '89kg-92kg' => '3', '97kg-100kg' => '1')
射程3kg,任意键。。
我不知道如何将其转换为范围。您可以使用cast(
(int)
)将第一个键和最后一个键转换为整数。然后,可以从第一个关键点创建循环,直到到达最后一个关键点。在它内部,您可以循环初始数组,并检查键是否在范围内。如果是,可以将当前值附加到最终数组:
$arr = array('85kg' => '1', '87kg' => '3', '88kg' => '1', '90kg' => '3', '98kg' => '1');
$first_key = (int)key($arr); // 85
end($arr); // move to the last element to get the last key,
$last_key = (int)key($arr); // 98
$it = $first_key;
while ($it <= $last_key) { // from 85 - 98
foreach ($arr as $key => $val) {
$intk = (int)$key ; // 85, 87, 88, 90, 98
if ($intk >= $it && $intk <= $it +3) {
$arrk = $it.'kg-'.($it+3).'kg'; // create key
if (!isset($out[$arrk])) $out[$arrk] = 0; // create key in array
$out[$arrk] += $val ; // append value
}
}
$it += 4; // += 3 + 1 (new weight)
}
print_r($out);
对于这个问题,我只看到循环和if。您希望使用哪些规则来设置范围?有更多的规则,然后一个。在切森索regole?qualsiasi,basta che sia联合国阵列范围内。。。tipo$data['weight']['1-4']=5等。没有真正注释,但可能是一个实现。Syscall,非常好。。。我认为这是一个完美的解决方案。回答我,我给你最好的答案!
Array
(
[85kg-88kg] => 5
[89kg-92kg] => 3
[97kg-100kg] => 1
)