2011-09-19 72 views
4

所以,我有两个数组如何将两个数组的字符串值与PHP成对连接?

Array 
(
[0] => test 
[1] => test 1 
[2] => test 2 
[3] => test 3 
) 

Array 
(
[0] => test 
[1] => test 1 
[2] => test 2 
[3] => test 3 
) 

我想,所以我得到这样一个数组将它们结合在一起?

Array 
(
[0] => test test 
[1] => test 1 test 1 
[2] => test 2 test 2 
[3] => test 3 test 3 
) 

我发现很多功能,如array_mergearray_combine但没有什么做什么,我想做的事情。

任何想法?

在此先感谢。

最大

+0

是的,我想知道是否有一个功能,它为我做^ _^ –

+3

鉴于有PHP中很多内置的函数,我不认为这是一个不合理的问题。 – mfonda

+0

@mfonda谢谢 –

回答

4

您可以用array_map做到这一点:

$combined = array_map(function($a, $b) { return $a . ' ' . $b; }, $a1, $a2)); 
+0

+1,与'array_map()'一起使用多个数组。 –

0

没有内置函数(我知道)来实现它。使用循环:

$combined = array(); 
for($i = 0, $l = min(count($a1), count($a2)); $i < $l; ++$i) { 
    $combined[$i] = $a1[$i] . $a2[$i]; 
} 

适应环路根据自己的喜好:仅拼接元素的最小数目,串联空字符串,如果阵列中的一个较短等

0

,你可以不喜欢它

for($i; $i<count($a); $i++) 
{ 
    $arr[$i] = $a[$i]." ".$b[$i]; 
} 
+0

'$ i knittl

+0

yaa很快就做到了。纠正感谢告诉。 – Astha

0

只要遍历以及级联分配到一个新的数组:

$array1=array("test","test 1","test 2","test 3"); 
$array2=array("x","y","z","w"); 

$new_array=array(); 

foreach (range(0,count($array1)-1) as $i) 
{ 
    array_push($new_array,$array1[$i] . $array2[$i]); 
} 
0

假设第Ë两个数组$阵列1和$数组2

for($x = 0; $x < count($array2); $x++){ 
     $array1[$x] = $array1[$x] . ' ' . $array2[$x]; 
    } 
1

这是一个在线解决方案,如果你使用的是PHP 5.3.0+:

$result = array_map(function ($x, $y) { return $x.$y; }, $array1, $array2); 
0

如果数据来自两个不同的查询并且它们变成两个不同的数组,则将它们组合并不总是一个答案。

当放入一个数组([])时,它们可以用一个foreach循环来计算多少个,然后循环在一起。

注意:它们必须在每个阵列中具有相同的数量或者一个可以在另一个之前完成......

foreach ($monthlytarget as $value) { 
// find how many results there were 
    $loopnumber++; 
} 

echo $loopnumber; 

for ($i = 0; $i < $loopnumber; $i++) { 
echo $shop[$i]; 
echo " - "; 
echo $monthlytarget[$i]; 
echo "<br>"; 
} 

这一操作将显示: -

Tescos - 78
阿斯达 - 89个
莫里森 - 23个
森斯玻利 - 46

你甚至可以在数号码添加到显示此列表项目编号....

相关问题