Bir Fonksiyon bir ilişkisel dizi tek bir öğesi Dönüş

0 Cevap php

Biz iki PHP-diziler var varsayalım:

 $some_array = array('a','b','c','d','e','f');
 $another_array = array(101,102,103,104,105,106);

PHP, bir Associative Array (AKA karma) yapımını, e, g, izin bazı Dizi-Fonksiyonlar var zaten;

 $hash = array_combine(
           $some_array,
           $another_array
         );

Ve işte geliyor. Ben daha işlevsel bir tarzda bir karma oluşturmak istiyorsanız, ben anahtarı ve değeri on the fly hesaplamak ve ({gibi, bir harita-operasyon ile karma oluşturmak istiyorsanız [(1)], ne yapmalıyım }):

 # wishful thinking
 $hash = array_map(
            function($a, $b){ return ($a => $b); },
            $some_array,
            $another_array
         );

Burada sorun beklenti, çizgi gibi görünüyor

            ...
            function($a, $b){ return ($a => $b); }
            ...

gerçekten dönecekti an key value/pair of a hash - öyle değil ki.

S: Nasıl bir işlevi bir anahtar / değer çifti dönebilirsiniz - hangi bir ilişkisel dizi oluşturmak için kullanılabilir?


Addendum

Gerçekten aradığım açıktır yapmak için, ben karma nesil bir perl örnek vereceğiz:

 ...
 # we have one array of characters (on which our hash generation is based)

 my @array = qw{ a b c d e f };

 # now *generate* a hash with array contents as keys and 
 # ascii numbers as values in a *single operation *
 # (in Perl, the $_ variable represents the actual array element)

 my %hash = map +($_ => ord $_), @array;
 ...

Sonuç (% hash):

 a => 97
 b => 98
 c => 99
 d => 100   
 e => 101
 f => 102

Tepkiler, ben şimdi bu PHP imkansız olduğunu düşünmek istiyorum. Tüm respondends teşekkürler.


0 Cevap