我有一个数组,其中包含关于盒子、盒子的体积和重量的信息。
$boxes = array('box1' => array('v' => 1.2, 'w' => 2.45),
'box2' => array('v' => 3.1, 'w' => 1.37),
'bigbox1' => array('v' => 6.2, 'w' => 5.45),
'box3' => array('v' => 2.15, 'w' => 2.94),
'smallbox1' => array('v' => 0.86, 'w' => 1.04),
'bigbox2' => array('v' => 11.3, 'w' => 10.9), ..);
我想去掉所有体积较大、重量较轻的盒子。例如,箱子2将被取消,因为箱子1更小更重。
您可以使用2个foreach循环。对于第一个foreach中的每个框,您将在所有框上再次循环,如果满足条件,则可以从$boxes
数组中取消设置。
$boxes = array(
'box1' => array('v' => 1.2, 'w' => 2.45),
'box2' => array('v' => 3.1, 'w' => 1.37),
'bigbox1' => array('v' => 6.2, 'w' => 5.45),
'box3' => array('v' => 2.15, 'w' => 2.94),
'smallbox1' => array('v' => 0.86, 'w' => 1.04),
'bigbox2' => array('v' => 11.3, 'w' => 10.9)
);
foreach ($boxes as $key => $box) {
foreach ($boxes as $b) {
if (($box['v'] > $b['v']) && ($box['w'] < $b['w'])) {
unset($boxes[$key]);
}
}
}