2014-10-31 72 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