php从两个数组中取值做拼接的问题,两个数组中数值的个数不相等,少的那个数组需要回头重新再取。

发布网友 发布时间:2022-04-06 04:39

我来回答

3个回答

热心网友 时间:2022-04-06 06:09

在循环外部定义一个指针
$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)应该就没问题了

热心网友 时间:2022-04-06 07:27

<?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
(纯手工)

热心网友 时间:2022-04-06 09:01

<?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不显示';
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com