Как отображать значения из двух индексированных массивов поочередно?

У меня есть этот код:

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

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
1

Другие решения

Просто попробуйте это:

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

Как насчет чего-то вроде этого:

for ($i = 1; $i < yourendvariable; $i = i + 2) {
echo "arrayname[i] arrayname2[i + 1]";
}
-1
По вопросам рекламы [email protected]