如果数组总数接近php的指定值,如何拆分数组
我有这样结构的数组数据如果数组总数接近php的指定值,如何拆分数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有这样结构的数组数据 Array ( [0] => Array ( [weight] => 20 ) [1] => Array ( [weight] => 15 ) [2] => Array ( [weight] => 40 ) ) 如果每个零件的总重量接近50,如何
Array
(
[0] => Array
(
[weight] => 20
)
[1] => Array
(
[weight] => 15
)
[2] => Array
(
[weight] => 40
)
)
如果每个零件的总重量接近50,如何从该阵列中制作零件
我试过使用array_split,但这似乎不是正确的方法
这是我的密码
<?php
$array = array();
$array[] = array
(
"weight" => "20"
);
$array[] = array
(
"weight" => "15"
);
$array[] = array(
"weight" =>"40"
);
echo "<pre>";
$arr= array_chunk($array,2);
print_r($arr);
?>
我想要这样的结果
使用array\u列展平数组,以便轻松排序。
然后循环数组,只要值小于50,就继续添加到新数组中,如果值大于50,则在新数组中创建一个新数组项
$arr=array\u列($array,“weight”);
排序($arr);
$i=0;
$new[0]=[];
外汇($arr作为$val){
if(数组_和($new[$i])+$val不知道你在问什么。你能提供你的预期输出吗?目前你的问题不清楚。你的问题不清楚,预期输出?对不起,我的英语不好,,,,我已经编辑了我的askDo。你想将它们分组,以便组中的权重总和低于50,即,添加另一项会使总和达到v值大于50?谢谢..,但是如何像往常一样显示数组项echo。您的问题中没有包括这一点。echo内爆(
“,$new);
我已经显示了我想要的示例结果…,很抱歉,在此之前我编辑了我的提问。exmaple结果请参见编辑的代码。现在我只是将值添加到多维数组中,而不是在循环中对其求和。
$arr = array_column($array, "weight");
sort($arr);
$i= 0;
$new[0]= [];
foreach($arr as $val){
if(array_sum($new[$i]) + $val <50){
$new[$i][] = $val;
}else{
$i++;
$new[$i][] = (int) $val;
}
}
var_dump($new);