2017-06-05 103 views
1

我有這樣的代碼:如何以交替方式從兩個索引數組中回顯值?

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

或者如果你是簡單的LY呼應,並不需要一個變量,這會比宣禮的解決方案更有效,因爲它沒有修改輸入數據:

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 
+0

這應該是公認的答案 – Akintunde007

+0

這個更好!非常感謝! –

-1

怎麼是這樣的:

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

就試試這個:

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

哇!謝謝!有效! –

+0

:)歡迎您 –

相關問題