PHP的基于阵列的价值
我想这个数组PHP的基于阵列的价值
$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;
}
}
任何援助表示高度赞赏。
试试这个:
$pax = [];
$seq = 1;
foreach($passengers as $key => $val){
while($val--) {
$pax[$key][] = $seq;
$seq++;
}
}
有两个周期:第一个周期的乘客,第二个创建你需要为每一个(种?)乘客尽可能多的元素。
'$ pax'有什么用? – JustBaron
我的错,复制/粘贴错误。现在它应该是正确的:) –
$result = [];
$counter = 1;
foreach($passengers as $key=>$value)
{
for($i=0;$i<$value;$i++)
{
$result[$key][] = $counter;
$counter++;
}
}
print_r($result);
虽然这段代码片段是受欢迎的,并且可能会提供一些帮助,如果它包含* how *的解释(// meta.stackexchange.com/q/114762) *为什么*这解决了这个问题。请记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请编辑您的答案以添加解释,并指出适用的限制和假设。 –
你想要创建什么?你能否提供正确的细节?从上面的数组到下面的数组还是从下面的数组到上面的? – jilesh
你卡在哪里?我非常怀疑这个数组转换是否有用。但是这应该可以通过你自己来解决。提示:for-loop ... –