如何以交替方式回显两个索引数组的值?

时间:2017-06-05 02:09:30

标签: php arrays concatenation echo alternating

我有这段代码:

<?php 
$arrayName2 = array('123', '567');
$arrayName3 = array('abc', 'def');
$arrayName[] = $arrayName2;
$arrayName[] = $arrayName3;
foreach ($arrayName as $key) {
    foreach($key as $innerKey) {
        echo $innerKey;
    }
}
?>

它带来:123567abcdef。我怎样才能获得123abc567def

3 个答案:

答案 0 :(得分:1)

试试这个:

$arrayName2 = array('123', '567');
$arrayName3 = array('abc', 'def');
$arrayName = array_combine($arrayName2,$arrayName3);
foreach ($arrayName as $key => $value) {
  echo $key.$value;
}

答案 1 :(得分:1)

以下是使用array_map()implode()

的单行内容
$arrayName2 = array('123', '567');
$arrayName3 = array('abc', 'def');

$result=implode(array_map(function($v1,$v2){return $v1.$v2;},$arrayName2,$arrayName3));
echo $result;
// output: 123abc567def

或者,如果您只是回应并且不需要变量,这将比Adhan的解决方案更有效,因为它不必修改输入数据:

array_map(function($v1,$v2){echo $v1,$v2;},$arrayName2,$arrayName3);
// output: 123abc567def

最后,这是一个更有效的foreach版本,因为array_combine()是不必要的:

foreach($arrayName2 as $k=>$a){
    echo $a,$arrayName3[$k];
}
// output: 123abc567def

答案 2 :(得分:-1)

这样的事情怎么样:

for ($i = 1; $i < yourendvariable; $i = i + 2) {
    echo "arrayname[i] arrayname2[i + 1]";
}