Maison >développement back-end >tutoriel php >一个分拆数组的算法
现有如下需求:首先有个数组$arr = array(1 => 12, 2 => 23)
;现在要将该数组进行拆分,生成一个新的数组,新数组的个数如下:
<code>$newArr = array( array(2, 7), array(2, 7), array(2, 9), array(1, 3), array(1, 9), ) </code>
必须满足一下条件:
1:新数组必须是有5项;
2:必须按照原有数组中最大的值来进行先拆分,然后次大值。。。,至于每项要拆分成多少个,自行决定,
3:拆分后的数组二维中的第一个值为原有的key,值为拆分后的数值,二维中第一个值相同的加起来必须等于原来数组的key对应的值。
现有如下需求:首先有个数组$arr = array(1 => 12, 2 => 23)
;现在要将该数组进行拆分,生成一个新的数组,新数组的个数如下:
<code>$newArr = array( array(2, 7), array(2, 7), array(2, 9), array(1, 3), array(1, 9), ) </code>
必须满足一下条件:
1:新数组必须是有5项;
2:必须按照原有数组中最大的值来进行先拆分,然后次大值。。。,至于每项要拆分成多少个,自行决定,
3:拆分后的数组二维中的第一个值为原有的key,值为拆分后的数值,二维中第一个值相同的加起来必须等于原来数组的key对应的值。
余兴节目。我就直接粘答案了。技巧:
<code><?php header("Content-Type: text/plain; "); $input = [1 => 12, 2 => 23]; $input = [1 => 0, 2 => 0]; define("TOTAL_SEGMENTS", 5); $input_sorted = $input; asort($input_sorted); $segment_counts = []; $segment_counts[0] = mt_rand(1, TOTAL_SEGMENTS - 1); $segment_counts[1] = TOTAL_SEGMENTS - $segment_counts[0]; $result = []; for ($i_slice = 0; $i_slice </code>