PHP ilişkisel dizi yinelenen anahtar?

3 Cevap

Ben aşağıda işlevini kullanarak bu değerleri eklerken ben bir ilişkisel dizi var, ancak aynı anahtarları üzerine yazmak gibi görünüyor. Farklı değerler ile aynı tuşları birden için bir yolu var mı? Ya da aynı formata sahip dizinin başka bir form var mı?

I want to have 42=>56 42=>86 42=>97 51=>64 51=>52 etc etc

   function array_push_associative(&$arr) {
       $args = func_get_args();
       foreach ($args as $arg) {
           if (is_array($arg)) {
               foreach ($arg as $key => $value) {
                   $arr[$key] = $value;
                   $ret++;
               }
           }else{
               $arr[$arg] = "";
           }
       }
       return $ret;
    }

3 Cevap

Hayır, bir ilişkisel dizi içinde aynı tuşa birden olamaz.

Ancak, benzersiz anahtarlar kimin gelen değerler diziler her olabilir ve bu diziler her anahtar için birden çok öğe var.

Yani bunun yerine ...

42=>56 42=>86 42=>97 51=>64 51=>52

... Bu var:

Array (
    42 => Array ( 56, 86, 97 )
    51 => Array ( 64, 52 )
)

Bir anahtar bir değişkenin bir uzantısıdır. Eğer değişkenlerin üzerine ... Eğer değişkeni üzerine.

Hayır, olamaz. Kullandığım bir geçici çözüm 2 elemanları ile yeni bir dizi olarak her anahtar / değer çifti sahip olmaktır:

$test = array(
     array(42,56),
     array(42,86),
     array(42,97),
     array(51,64),
     array(51,52)
)

Örneğin, kullandığınız ikinci anahtar (= 42) erişebilirsiniz:

$test[1][0]

ve ikinci değer (= 86) kullanılarak:

 $test[1][1]