PHP i Ruby są
Wbudowany typ PHP jest w rzeczywistości tablicą asocjacyjną. Nawet przy użyciu indeksów numerycznych PHP wewnętrznie przechowuje je jako tablicę asocjacyjną. Właśnie dlatego jeden w PHP może mieć nieciągłe tablice indeksowane numerycznie. Klucze muszą być wartościami skalarnymi (ciąg, liczba zmiennoprzecinkowa lub liczba całkowita), podczas gdy wartości mogą być dowolnych typów, w tym innych tablic i obiektów. Tablice są heterogeniczne; pojedyncza tablica może mieć klucze różnych typów. Tablice asocjacyjne PHP mogą służyć do reprezentowania drzew, list, stosów, kolejek i innych typowych struktur danych niewbudowanych w PHP.
W PHP tablicę asocjacyjną można utworzyć na dwa sposoby:
$ phonebook = array (); $ książka telefoniczna [„Sally Smart”] = „555-9999”; $ książka telefoniczna [„John Doe”] = „555-1212”; $ książka telefoniczna [J. Random Hacker '] =' 555-1337 '; // lub $ phonebook = array („Sally Smart” => „555-9999”, „John Doe” => „555-1212”, „J. Random Hacker” => „555-1337”); // lub $ książka telefoniczna [„kontakty”] [„Sally Smart”] [„number”] = „555-9999”; $ książka telefoniczna [„kontakty”] [„John Doe”] [„numer”] = „555-1212”; $ książka telefoniczna [„kontakty”] [„J. Random Hacker '] [' number '] =' 555-1337 ';
Możesz również wykonać pętlę w tablicy asocjacyjnej w PHP w następujący sposób:
foreach ($ książka telefoniczna jako $ name => $ number) echo "Number for $ name: $ number \ n";
// W ostatnim przykładzie tablica jest używany tak jak ten foreach ($ phonebook ['kontakty'] jako $ name => $ num) echo "Name: $ name"; echo "Number: $ num ['number']";
PHP ma szeroki zestaw funkcji do obsługi tablic.
W Rubim tablica asocjacyjna jest nazywana skrótem i jest używana w następujący sposób:
książka telefoniczna = „Sally Smart” => „555-9999”, „John Doe” => „555-1212”, „J. Random Hacker '=>' 553-1337 '
książka telefoniczna [„John Doe”]
produkuje „555-1212”
Aby wykonać iterację po skrócie, użyj czegoś takiego:
phonebook.each | klucz, wartość | wstawia klucz + "=>" + wartość
Dodatkowo każdy klucz może być pokazany osobno:
phonebook.each_key | key | stawia klucz
Każda wartość może być również pokazana:
phonebook.each_value | value | stawia wartość