我想要这个数组
$passengers = array(
'adult' => 2,
'child' => 1,
'infant' => 1
);
改变这样。根据人数创建序列。
Array(
[adult] => Array(
[0] => 1
[1] => 2
)
[child] => Array(
[0] => 3
)
[infant] => Array(
[0] => 4
)
)
我坚持使用此代码
$seq=1;
foreach($passengers as $paxKey => $paxVal){
if($paxVal>1){
$pax[$paxKey][] = $seq;
$seq = $seq+$paxVal;
}else{
$seq=$paxVal+$seq;
$pax[$paxKey][] = $seq;
}
}
非常感谢任何帮助。
答案 0 :(得分:1)
试试这个:
$pax = [];
$seq = 1;
foreach($passengers as $key => $val){
while($val--) {
$pax[$key][] = $seq;
$seq++;
}
}
有两个循环:第一个循环乘客,第二个循环为每个(某种?)乘客创建所需数量的元素。
答案 1 :(得分:0)
$result = [];
$counter = 1;
foreach($passengers as $key=>$value)
{
for($i=0;$i<$value;$i++)
{
$result[$key][] = $counter;
$counter++;
}
}
print_r($result);