2014-10-31 69 views
2

让我们假设我有两个数组,我想将每个值与数组的另一个值合并。两个数组的连接值

阵列1

array (size=2) 
    0 => 1 
    1 => 2 

阵列2

array (size=2) 
    0 => 3 
    1 => 4 

求购结果阵列/串:

array (size=4) 
    0 => '1,3' 
    1 => '1,4' 
    2 => '2,3' 
    3 => '2,4' 

我不能让我的头周围。很明显,我需要将每个数组键/值与其他数组合并。有没有更优雅的方式,然后在while/foreach循环中执行此操作?

+0

所以你试过? – 2014-10-31 12:56:35

+1

我使用两个数组的标题concantenate值。会更合适。 – Rimble 2014-10-31 13:02:52

+0

连结*,道歉。 @ s1x – Rimble 2014-10-31 13:05:00

回答

2

您需要一个foreach循环在foreach循环内。 (Actualy,你将不得不循环两个数组以获得两个数组的连接产物,但实际上并不需要两个循环)。你可以混合:whilesforeachfor,或php滤波器/相交数组函数

$array1 = array(1,2); 
$array2 = array(3,4); 
$result = array(); 

foreach ($array1 as $item1){ 
    foreach($array2 as $item2){ 
     $result[] = $item1.','.$item2; 
    } 
} 

https://eval.in/215001

你的结果阵列的长度将是array1.Length * array2.Length

2D阵列

你也可以把一个数组insi德数组是这样的:

$array1 = array(1,2); 
$array2 = array(3,4); 
$result = array(); 

foreach ($array1 as $item1){ 
    foreach($array2 as $item2){ 
     $result[] = array($item1, $item2); 
    } 
} 
//$result[0][0] = 1 -- $result[0][1] = 3 
//$result[1][0] = 1 -- $result[1][1] = 4 
//$result[2][0] = 2 -- $result[2][1] = 3 
//$result[3][0] = 2 -- $result[3][1] = 4 

我们称之为2D(二维)阵列,因为你可以grapicly显示这是一个网格,喜欢这里的上方。如果你想放置一个数组,在一个数组内的数组中,你可以称这是一个三维数组等。在PHP中:

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

    [1] => Array 
     (
      [0] => 1 
      [1] => 4 
     ) 

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

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

) 
+0

检查你的输出?语法错误$ item1。','$ item2; – 2014-10-31 13:06:11

+0

修正了它,没有我没有,我写了纯文本。 – 2014-10-31 13:08:50

1

尝试

$a= array ('0' => 1,'1' => 2); 
$b= array ('0' => 3,'1' => 4); 
for($i=0; $i<count($a); $i++) { 
    for($j=0; $j<count($b); $j++) { 
    $newarr[]= $a[$i].','.$b[$j]; 
    } 
} 
print_r($newarr);//Array ([0] => 1,3 [1] => 1,4 [2] => 2,3 [3] => 2,4) 
1
$a=array('1','2'); 
$b=array('3','4'); 
$res=array(); 
for($i=0;$i<count($a);$i++) 
{ 
    foreach($b as $bb) 
    { 
     $res[]=strval($a[$i].','.$bb); 
    } 


} 
print_r($res);//output=Array ([0] => 1,3 [1] => 1,4 [2] => 2,3 [3] => 2,4) 
+0

@Rakesh Sharma $ bb是变量,持有$ b的值检查这个http://php.net/manual/en/control-structures.foreach.php – 2014-10-31 13:06:17