我被困住了( 有两个数组,$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);
演示