php 按数量规则组合和排序数组(Laravel 5.6)



我被困住了( 有两个数组,$a$b。我希望从$b中获取和"排序"值以接收这样的数组$final

array:6 [
0 => [1 => 1]
1 => [1 => 3]
2 => [1 => 5]
3 => [2 => 7]
4 => [3 => 9]
5 => [3 => 11]
]

但我得到这个错误的数组:

array:6 [
0 => [1 => 1]
1 => [1 => 3]
2 => [1 => 5]
3 => [2 => 1]
4 => [3 => 1]
5 => [3 => 3]
]

法典:

$final = [];
$c = 0;
$a = [3,1,2];
$b = [1,3,5,7,9,11];
foreach($a as $k => $v){
$c++;
foreach($b as $key => $val){
if($v > $key)
$final[] = [$c => $val];
}
}
dump($final);

如何告诉 foreach($b( 内部的 if 语句验证$key是否应该大于其以前的值?因为我看到第 3 个索引处的错误数组从$b( .. 3 => [2 => 1] .. )中获取第一个元素

尝试了不同的方法,但没有成功。

如果你可以修改数组 a,更容易这样做:

$i=0; // Index of array a
foreach($b as $v){
// while a[$i] is not zero
if(! $a[$i]) {
// Go next item of array a
$i++;
} 
// Put to final array  
$final[] = [$i+1 => $v];
// Decrease counter
$a[$i]--;
}
print_r($final);

演示

最新更新