2-6 编程练习
<?php
$letter=[];
$l=[];
//a-n区间的字母按题目要求循环入栈,每一次入二退一,这里用循环该怎么实现呢?
for($i='a';$i<='n';$i++){
array_push($letter,$i,$i++);
$out=array_pop($letter);
array_push($l,$out);
//bdfhjl
}
//输出循环进栈操作过后的数组$letter
print_r($l);
print_r($letter);
//执行三次出队列操作,这里是不是也应该使用循环呢?又应该使用哪一个数组函数操作?
for($i=0;$i<3;$i++){
array_shift($letter);
}
//unset($letter[0],$letter[1],$letter[2]);
//输出出队列之后的数组$letter
print_r($letter);
?>
//////////////////
如果我想把移出的元素放到新数组里输出,但是为何$out得到的是acegikm,不是bdfhjl
2.三次出队有哪个函数可以实现?unset()?不过0-2键值也会被切掉
正在回答 回答被采纳积分+1
您好,
第一次将a,b压入栈,循环里应该使用:array_push($letter,$i,++$i);而不是array_push($letter,$i,$i++);$i此时等于a,而$i++的值也是a,执行过后$i的值才会自加1,这样会导致压入的是a,a,而不是a,b,那弹出来的也就不是b,而是一个a了。
另外,如果您想使用新数组接收弹出的数组,可以用$l[] = array_push($out),array_push函数只接收一个数组参数,返回被弹出的数组元素。修正过后打印$letter和$l就会看到以下结果:
Array
(
[0] => a
[1] => c
[2] => e
[3] => g
[4] => i
[5] => k
[6] => m
)
Array
(
[0] => b
[1] => d
[2] => f
[3] => h
[4] => j
[5] => l
[6] => n
)
三次出队列使用for循环实现,array_shift函数。
for($j=0;$j<3;$j++){
array_shift($letter);
}
打印出队列后的$letter:
Array
(
[0] => g
[1] => i
[2] => k
[3] => m
)
如果解决了您的问题,请采纳,祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星