Przełącz dwa elementy w tablicy asocjacyjnej
Przykład:
$arr = array( 'apple' => 'sweet',
'grapefruit' => 'bitter',
'pear' => 'tasty',
'banana' => 'yellow');
Chcę zmienić pozycje grejpfruta i gruszki, tak aby stała się tablica
$arr = array( 'apple' => 'sweet',
'pear' => 'tasty',
'grapefruit' => 'bitter',
'banana' => 'yellow')
Znam klucze i wartości elementów, które chcę przełączać, czy jest na to łatwy sposób? A może wymagałoby to pętli + utworzenia nowej tablicy?
podziękować
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
17 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Przetestowane i działa dobrze
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Weźmy:
Zdobądź klucze:
Pobierz wartości:
Teraz masz 2 tablice numeryczne. Zamień indeksy na te, które chcesz zamienić, a następnie przeczytaj drugą tablicę z powrotem w kolejności zmodyfikowanej tablicy liczbowej. Powiedzmy, że chcemy zamienić „owoce” i „warzywa”:
Teraz możesz zamienić tablicę z powrotem:
Możesz teraz zbudować tablicę, przechodząc przez tablicę oringal do „kolejności” przegrupowanych kluczy.
Nie testowałem tego - ale tego się spodziewałem. Czy to pomaga? Powodzenia :)
Możesz umieścić to w funkcji
OSTRZEŻENIE: proszę przetestować i zdebugować to przed samym użyciem - żadne testy nie zostały w ogóle wykonane.
Anonimowy użytkownik
Potwierdzenie od:
...
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Jeśli naprawdę chcesz się upewnić, że są we właściwej kolejności, spróbuj utworzyć obiekty z owocami, a następnie umieść je w zwykłej tablicy.
Anonimowy użytkownik
Potwierdzenie od:
Mówisz, że , co sprawia, że myślę, że to, czego naprawdę chcesz, to funkcja sortowania, ponieważ w każdej chwili możesz łatwo uzyskać dostęp do elementów, które chcesz chcesz, tak jak oni.
$value = $array[$key];
Jeśli tak, to użyłbym
sort()
http://us.php.net/manual/en/function.sort.php
,
ksort()
http://us.php.net/manual/en/function.ksort.php
lub jedną z wielu innych funkcji sortowania, aby uzyskać tablicę tak, jak chcesz. Możesz nawet użyć usort ()
-
http://us.php.net/manual/en/function.usort.php .
Alternatywnie możesz użyć
array_replace()
http://us.php.net/manual/en/fu ... e.php
jeśli kiedykolwiek będziesz musiał zamienić wartości lub klucze.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
i otrzymujesz:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Zwraca nową tablicę ze zmienionymi dwoma elementami. Zachowuje oryginalne klucze, jeśli są dostępne. Zwróć FALSE, jeśli nie znaleziono żadnych kluczy.
Na przykład:
Anonimowy użytkownik
Potwierdzenie od:
Zauważ, że zadziała to tylko wtedy, gdy klucze, które chcesz zamienić, znajdują się obok siebie.
Anonimowy użytkownik
Potwierdzenie od:
function order_array ($ array, $ order) {
Mam nadzieję, że jest to dla kogoś istotne/pomocne
Anonimowy użytkownik
Potwierdzenie od:
nie oznacza to, że pierwszy element to „jabłko” = & > „słodki”, a ostatni to „banan” = & > „żółty” tylko dlatego, że słowo „jabłko” zostało umieszczone na pierwszym miejscu, a „banan” na końcu. Właściwie „jabłko” = & > „słodki” będzie pierwszym i
„banan” = & > „żółty” będzie na drugim miejscu ze względu na rosnącą kolejność alfabetyczną.