2009-08-15 128 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 
    ) 
)