php – 数组按值划分/拆分
发布时间:2020-12-13 17:05:08 所属栏目:PHP教程 来源:网络整理
导读:$a = array(8,16,32,8,4,4); 使用像上面那样的数组有一种方法,所以我可以根据总和达到设定值的值来划分/拆分数组.例如,如果我希望它们等于32.我的最终数组将有多达100个值,所有值都是32,8或4,我只需要对项目进行分组,使得值始终等于设定量,因此在此示例中为3
$a = array(8,16,32,8,4,4); 使用像上面那样的数组有一种方法,所以我可以根据总和达到设定值的值来划分/拆分数组.例如,如果我希望它们等于32.我的最终数组将有多达100个值,所有值都是32,8或4,我只需要对项目进行分组,使得值始终等于设定量,因此在此示例中为32. 从上面的数组我希望得到: $a[0][1] = 16 $a[0][2] = 16 $a[1][3] = 32 $a[2][0] = 8 $a[2][4] = 8 $a[2][5] = 8 $a[2][6] = 4 $a[2][7] = 4 因为$a [0]总计最多32,所以$a [1]和$a [2]. 解决方法$a = array(8,4); $limit = 32; rsort($a); $b = array(array()); $index = 0; foreach($a as $i){ if($i+array_sum($b[$index]) > $limit){ $b[++$index] = array(); } $b[$index][] = $i; } $a = $b; print_r($a); 它会起作用,但只是因为在你的情况下你有4 | 8 | 16 | 32,并且仅当所需的总和是最大数字的倍数(32)时. 测试:http://codepad.org/5j5nl3dT 注意:|意味着分裂. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |