2009-08-15 125 views
1

我該如何結合這兩個陣列?組合2個php數組?

$array1 = array("gif" => "gif", "jpg" => "jpeg", "jpeg" => "jpeg", "png" =>"png"); 
$array2 = array("gif" => "0", "jpg" => "90", "jpeg" => "90", "png" => "8"); 

我試圖

$array1 = array("gif" => "gif" => "0", "jpg" => "jpeg" => "90", "jpeg" => "jpeg" => "90", "png" =>"png" => "8"); 

但是,當然,它沒有工作,所以任何幫助嗎?

+4

你能解釋一下你想達到的目標嗎?我很*你的例子 – nickf 2009-08-15 22:08:36

回答

6

這似乎更有意義:

$arr = array("gif" => array("extension" => "gif", "size" => "90"), 
      "jpg" => array("extension" => "jpeg", "size" => "120") 

       ... 
      ); 

echo "Extension: " . $arr['gif']['extension'] . " Size or whatever: " . $arr['gif']['size']; 

要遍歷它:

foreach($arr as $key => $val) { 
    echo "Image Type: $key, Extension: " . $val['extension'] . ", Size: " . $val['size']; 
} 
2

對於每個鍵您有兩個值。有多個值創建一個子陣列的每個鍵:

$ar1 = array('key' => array('key1','key2')); 
1

爲了擴大我以前的答案,您使用的是paralell陣列的更好:

$validTypes = array("gif" => "gif", "jpg" => "jpeg", "jpeg" => "jpeg", "png" => "png"); 
$quality = array("gif" => 0, "jpg" => 90, "jpeg" => 90, "png" => "png"); 
if (!array_key_exists($image_type, $validTypes)) { 
    trigger_error("Not a valid image type", E_USER_WARNING); 
    return NULL; 
} 

// ... 

$inFunc = "imagecreatefrom" . $validTypes[$image_type]; 
$outFunc = "image" . $validTypes[$image_type]; 

// ... 

$outFunc($image, $source_file, $quality[$image_type]); 

但是karim的回答也很好。只是一個偏好問題。

+0

感到困惑,謝謝,我最終做了2個陣列,事情通常在我點擊提交按鈕後出現在我的頭上 – JasonDavis 2009-08-15 22:54:21

0

不知道你想如何「結合」他們。 IM將假設你希望從第一陣列中的每個鍵映射到一個值,在第二

foreach($array1 as $k=>$v) 
{ 
    $a3[$k] = $array2[$v] 
} 

給你

$a3 = array('gif'=>'0', 'jpg'=>'90', 'jpeg'=>'90', 'png'=>'8'); 

但是,這是一樣的數組2。 也許

foreach($array1 as $k=>$v) 
{ 
    $a3[$k] = array($array1[$k],$array2[$k]); 
} 

$a3 = array('gif'=>array('gif',0),'jpg'=>array('jpeg',90)...) 
1
$array1 = array("gif" => "gif", "jpg" => "jpeg", "jpeg" => "jpeg", "png" =>"png"); 
$array2 = array("gif" => "0", "jpg" => "90", "jpeg" => "90", "png" => "8"); 
$finalarray = (array_merge_recursive($array1,$array2)); 

的$ finalarray結構如下是:

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

[jpg] => Array 
    (
     [0] => jpeg 
     [1] => 90 
    ) 

[jpeg] => Array 
    (
     [0] => jpeg 
     [1] => 90 
    ) 

[png] => Array 
    (
     [0] => png 
     [1] => 8 
    ) 
)