php从两个数组中取值做拼接的问题,两个数组中数值的个数不相等,少的那个数组需要回头重新再取。
<?php//有$aa和$bb两个数组,其中$aa数组里有9个,$bb数组的值是4个$aa=Array('a','b','c','d','e','f','g','h','...
<?php
//有$aa和$bb两个数组,其中$aa数组里有9个,$bb数组的值是4个
$aa = Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
$bb = Array('223', '634', '343', '128');
//现在用foreach循环输出$aa数组的9个值。
foreach($aa as $k => $v)
{
//这里需要写段程序,在每次循环$aa数组时,都从$bb数组里按从左到右的顺序取一个值(这里先取'223'),并把这个值赋给下面的$bbz变量,用来做拼接显示。
//$bb数组里面的4个值,从左到右都取过一遍后,再回头从左到右取值,直到foreach把$aa的9次循环跑完。
//下面把两个数组里取来的值,拼接在一起,并显示出来。
echo $v.'拼接'.$bbz;
echo '<br/>';
}
?>
即运行这个php后,会如下显示:
a拼接223
b拼接634
c拼接343
d拼接128
e拼接223
f拼接634
g拼接343
h拼接128
i拼接223 展开
//有$aa和$bb两个数组,其中$aa数组里有9个,$bb数组的值是4个
$aa = Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
$bb = Array('223', '634', '343', '128');
//现在用foreach循环输出$aa数组的9个值。
foreach($aa as $k => $v)
{
//这里需要写段程序,在每次循环$aa数组时,都从$bb数组里按从左到右的顺序取一个值(这里先取'223'),并把这个值赋给下面的$bbz变量,用来做拼接显示。
//$bb数组里面的4个值,从左到右都取过一遍后,再回头从左到右取值,直到foreach把$aa的9次循环跑完。
//下面把两个数组里取来的值,拼接在一起,并显示出来。
echo $v.'拼接'.$bbz;
echo '<br/>';
}
?>
即运行这个php后,会如下显示:
a拼接223
b拼接634
c拼接343
d拼接128
e拼接223
f拼接634
g拼接343
h拼接128
i拼接223 展开
3个回答
展开全部
在循环外部定义一个指针
$i=0;
循环内部
$bbz=$bb[$i];//取当前$i指向的元素
if($i<count($bb)){//指针位置小于数组总大小
$i++;//指针加1,指向下一个元素
}else{
$i=0;//因为指针位置大于了数组总大小,所以设置为0,让他重头跑
}
$i=0;
循环内部
$bbz=$bb[$i];//取当前$i指向的元素
if($i<count($bb)){//指针位置小于数组总大小
$i++;//指针加1,指向下一个元素
}else{
$i=0;//因为指针位置大于了数组总大小,所以设置为0,让他重头跑
}
追问
试了一下,$aa数值循环到'e'时,没拼接值,是空的。
追答
后面正常吗?是不是中间空了一个,我也好久没用了,没事思想是对的只要把判断条件改为$i<=count($bb),或者($i+1)<count($bb)应该就没问题了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?php
header('Content-type:text/html');
$a = array('a','b','c','d','e','f','g','i');
$b = array('123','222','333','444');
$j = 0;
foreach($a as $k=>$v){
if($j>=count($b)){
$j=0;
}
$bbz = $b[$j];
$j++;
echo $v.'-link-'.$bbz;
echo '<br/>';
}
结果:
a-link-123
b-link-222
c-link-333
d-link-444
e-link-123
f-link-222
g-link-333
i-link-444
(纯手工)
header('Content-type:text/html');
$a = array('a','b','c','d','e','f','g','i');
$b = array('123','222','333','444');
$j = 0;
foreach($a as $k=>$v){
if($j>=count($b)){
$j=0;
}
$bbz = $b[$j];
$j++;
echo $v.'-link-'.$bbz;
echo '<br/>';
}
结果:
a-link-123
b-link-222
c-link-333
d-link-444
e-link-123
f-link-222
g-link-333
i-link-444
(纯手工)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?php
header('Content-Type:text/html;charset=utf-8');
$a = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
$b = array('223', '634', '343', '128');
$b_count = count($b);
$i = 0;
foreach($a as $k => $v)
{
if ($i < $b_count) {
echo $v.'拼接'.$b[$i];
} else {
echo $v.'拼接'.$b[0];
}
$i++;
echo '换行符,写br不显示';
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询