2 php diziler birleştirmek?

6 Cevap php

Ben nasıl bu 2 dizi birleştirebilirsiniz?

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

Denedim

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

Ama tabii bu kadar herhangi bir yardım işe yaramadı?

6 Cevap

Bu daha mantıklı gibi görünüyor:

$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'];

Bunun üzerinde döngü:

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

Her anahtar için iki değer var. Birden fazla değer her anahtar için bir alt dizi oluşturun:

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

Benim önceki cevap üzerine inşa etmek, dizileri paralell kullanarak daha iyi konum:

$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'in cevabı olsa da gayet iyi. Sadece bir tercih meselesi.

$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 yapısıdır:

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
    )
)

değil onları 'birleştirmek' istiyorum nasıl emin. Eğer 1 diziden her tuşa 2 bir değere eşlemek istediğiniz varsaymak gidiş-im

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

verir

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

But that is the same as array2. Maybe

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

verir

 $a3 = array('gif'=>array('gif',0),'jpg'=>array('jpeg',90)...)

Ben cevapların hiçbiri aslında "everything you ever wanted to know about PHP arrays but were afraid to ask" olarak tarif edilebilir aşağıdaki sevk ki şaşırdım