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

How to echo values from two indexed arrays in an alternating fashion?

我有这个代码:

<?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

这样的事情怎么样:

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

试试这个:

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

这是使用 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