Czy to jest możliwe w php, aby utworzyć tablicę również jako klucz tablicy?Tablica PHP jako klucz tablicy
Przykład:
array(
array('sample', 'abc') => 'sample value'
);
Czy to jest możliwe w php, aby utworzyć tablicę również jako klucz tablicy?Tablica PHP jako klucz tablicy
Przykład:
array(
array('sample', 'abc') => 'sample value'
);
Co złego
array(
'sample value' => array('sample', 'abc')
);
można wtedy zrobić
foreach($array as $string => $child){
...
}
i użyć $child
niezależnie od celu
T jego nie jest możliwe - klucze tablicy musibe strings or integers.
Co można zrobić, to użyć serialize:
$myArr = array(serialize(array('sample', 'abc')) => 'sample value');
który będzie taki sam, jak:
$myArr = array('a:2:{i:0;s:6:"sample";i:1;s:3:"abc";}' => 'sample value');
i może być dostępne jak:
echo $myArr[serialize(array('sample', 'abc'))];
Należy jednak pamiętać, że serializowany łańcuch, który byłby unikalnym identyfikatorem elementu tablicy, jest wyraźnie dość skomplikowany i prawie niemożliwe do wpisania ręcznie.
Macierze PHP mogą zawierać klucze integer i string, a ponieważ PHP nie rozróżnia tablic indeksowanych i asocjacyjnych. Poszukaj instrukcji php Php Manual
dzięki damian ..: D – Aldee
jesteś mile widziany (Y) –
Nie, jeśli czytasz manual
Tablica w PHP jest obecnie uporządkowaną map. Mapa jest typem, który łączy wartości z kluczami. Ten typ jest zoptymalizowany pod kątem kilku różnych zastosowań; może być traktowany jako tablica, lista (wektor), tablica asocjacyjna (implementacja mapy), słownik, kolekcja, stos, kolejka i prawdopodobnie więcej. Jako wartości tablicowe mogą należeć inne tablice, drzewa i wielowymiarowe tablice są również możliwe.
I:
Kluczem może być albo całkowitą lub ciąg. Wartość może być dowolnego rodzaju.
Masz rację. Właśnie zdałem sobie z tego sprawę z twoją odpowiedzią ... dzięki ... trzymaj to .. – Aldee
Nie, nie jest to możliwe. klucze tablicy muszą być liczbami całkowitymi lub łańcuchami. jest to wyjaśnione w http://php.net/manual/en/language.types.array.php – Gordon
Teoretycznie możesz "serializować()" tablicę w łańcuch, który będzie używany jako klucz tablicy, ale mogę " Sprawdź, dlaczego twój projekt tego wymaga i naprawdę nie zalecam tego. Byłoby to brzemienne z powodu problemów, takich jak konieczność reserializacji za każdym razem, gdy trzeba było to zmienić. –
nie tylko to nie jest możliwe, ale nie widzę nawet praktycznego zastosowania - indeksy i klucze assoc we wszystkich językach programowania (wspierając je) według mojej wiedzy są wartościami skalarnymi –