Na poziomie PHP tablica jest uporządkowaną listą mapowaną do mapy. Innymi słowy, PHP po prostu łączy te dwie koncepcje, co daje dość elastyczne, ale z drugiej strony nie jest najbardziej optymalną strukturą danych w porównaniu z podobnymi opcjami.
Niewiele osób wie, że na poziomie C (a nawet na poziomie systemu) nie ma tablic, które mogłyby mieć nie stały rozmiar. Tak więc, jeśli zamierzasz utworzyć tablicę w C, to z pewnością będziesz musiał określić jej rozmiar, aby system mógł określić, ile wolnego miejsca musisz przeznaczyć na to.
W PHP sortowanie tablicy nie jest takie samo, jak w innych magazynach danych, tutaj jest to uporządkowane mapowanie, które określa zgodność między kluczem a określoną wartością. Ten rodzaj macierzy jest zoptymalizowany w kilku różnych kierunkach, co pozwala aktywnie wykorzystać go bezpośrednio jako samą tablicę, jak również słownik, wykład, tabelę mieszania, a także do wielu innych celów, według własnego uznania. Należy zauważyć, że w przypadku PHP wartość w tablicy może być inną podobną tablicą. Pozwala to tworzyć drzewa, a także wielowymiarowe przechowywanie.
Wśród wyróżniających się cech tego repozytorium warto zauważyć, jak łatwo można usunąć tablicę w PHP. Rzeczywiście, w tym przypadku procedura jest znacznie prostsza niż w podobnych systemach plików.
Jeśli masz zamiar stworzyć całkowicie pustą tablicę, to w tym przypadku tablica PHP zostanie utworzona z określonym rozmiarem. Jeśli ten wolumen zostanie wypełniony, a następnie zdecydujesz się na przekroczenie tego rozmiaru, zostanie utworzona zupełnie nowa tablica, o objętości dwukrotnie większej od istniejącej, a wszystkie dane zostaną do niej skopiowane, a stara tablica zostanie całkowicie zniszczona. To podejście jest standardem.
W rzeczywistości, aby zaimplementować tablicę PHP, używana jest tradycyjna struktura danych o nazwie Tabela Hash. Ta struktura zawiera wskaźnik do ostatniej i pierwszej wartości, która jest niezbędna do porządkowania tablic, a także wskaźnik do bieżącej wartości, która jest używana do zapewnienia iteracji w tablicy. Ponadto tabela mieszania zawiera liczbę elementów przechowywanych w tablica, tablica wskaźniki do wiadra i inne ważne dane.
Tablica skrótów ma dwie ważne cechy - jest to sama struktura danych, a także Wiadro (wiadro).
Wiaderka przechowują same wartości, to znaczy, każdy z nich ma własne wiadro, ale dodatkowo zawiera również oryginalny klucz, a także różne wskaźniki do poprzednich lub kolejnych segmentów, które służą do organizowania utworzonej tablicy, tak jak w PHP Klucze mogą iść w innej kolejności, w zależności od życzeń użytkownika.
Tak więc, jeśli chcesz dodać nowy element do tablicy, ale ten klucz jeszcze tam nie istnieje, automatycznie zostanie utworzony nowy segment, który zostanie dodany do tabeli mieszania. W tym przypadku musisz poprawnie zrozumieć, w jaki sposób wielowymiarowa tablica PHP będzie przechowywać te segmenty.
Jak wspomniano powyżej, system ma wyspecjalizowaną tablicę wskaźników do wiader, przy czym każdy zasobnik ma dostęp przez określony indeks, który jest określany za pomocą klucza. Brzmi często dość trudne, ale w rzeczywistości wszystko jest nieco prostsze niż się wydaje. W ten sposób klucz można uzyskać w następujący sposób:
Informacje o masce: na przykład tablica danych zawiera cztery różne elementy, a następnie maska będzie równa trzy. Teraz, jeśli jako klucz otrzymasz liczbę podobną do 123, wówczas w tym przypadku po zastosowaniu maski otrzymasz 3, a ta liczba może już być użyta jako indeks.
Wiadra mają kilka ważnych funkcji, które należy znać. Każda łyżka ma wskaźnik do następnego i poprzedniego, z równymi wskaźnikami. Tak więc, oprócz głównej podwójnie połączonej listy przechodzącej przez wszystkie użyte wiadra, istnieją również dwie małe podwójnie powiązane listy pomiędzy wiaderkami o równym indeksie.
To, co dzieje się po wyczerpaniu całej używanej macierzy, nazywa się rehash wśród specjalistów. W istocie jest to iteracja nad wszystkimi używanymi wiadrami, a także przypisanie ich sąsiadom i dodanie do nich linków.
Procedura jest początkowo taka sama, jak w przypadku uzyskania klucza, ale w tym przypadku kontynuacja:
Takie działania należy powtarzać do momentu, aż wszystkie paczki zostaną całkowicie pominięte lub dopóki nie znajdziesz interesującego Cię meczu.
Warto zauważyć, że wielowymiarowa tablica PHP jest prawie całkowicie zbudowana na pojedynczej strukturze HashTable, ponieważ wszystkie zmienne, które znajdują się w określonym zakresie, faktycznie znajdują się w tej strukturze danych, podarte jako metody, pola i definicje klas. Ponadto ta struktura danych pozwala osiągnąć prawie taką samą prędkość wszystkich operacji, a jednocześnie znacznie upraszcza ich realizację.
Tablica jest tworzona przy użyciu tablicy konstruowania języka, która może przyjmować dowolną liczbę par klucz => wartość, oddzielonych przecinkami, jako parametry.
Klucz w tym przypadku może być ciągiem lub liczbą całkowitą. Jeśli klucz jest standardową liczbą całkowitą, wówczas zostanie zinterpretowany w tym przypadku, podczas gdy spławik zostanie przycięty do tego formatu. Warto zauważyć, że w PHP sortowanie tablicy nie zapewnia żadnej różnicy między tablicami asocjacyjnymi i indeksowymi, czyli jest tylko jeden typ pamięci, który zawiera zarówno wskaźniki łańcuchowe, jak i liczbowe.
W przypadku normalnej pracy z tablicami zapewniona jest wystarczająco duża liczba różnych funkcji, jednak nie wszyscy wiedzą i są w stanie z nich korzystać. W szczególności należy zwrócić szczególną uwagę na taką funkcję, jak unset, która pozwala całkowicie usunąć klucze, które element tablicy ma w PHP. Jeśli chcesz wykonać akcję w stylu "usuń i przenieś", tablica może zostać ponownie odwzorowana za pomocą wartości array_values.
Struktura kontroli foreach została specjalnie stworzona do pracy z tablicami. Ta funkcja służy do łatwego przeglądania zawartości tablicy i interakcji z danymi.
Podczas deklarowania indeksowanej tablicy PHP po ustawieniu nazwy zmiennej ustawia się również parę nawiasów kwadratowych, w których pozycja danej tablicy jest wskazywana bezpośrednio. Istnieje również kilka podstawowych poleceń, które musisz znać podczas tworzenia tej tablicy:
W każdym przypadku literał łańcuchowy musi być ujęty w cudzysłów w indeksie tablicy asocjacyjnej. Dość często można znaleźć składnię w starych skryptach, w których nie ma cudzysłowów, a to może faktycznie zadziałać, chociaż jest niepoprawne. W tym przypadku powodem jest to, że kod ten zawiera stałą nieoznaczoną zamiast łańcucha, w wyniku czego w PHP wynik tablicy może być taki, że "prosta linia" może być automatycznie przekształcona na pełny ciąg o odpowiedniej wartości. Innymi słowy, jeśli początkowo nie można było ustalić stałej stałej, PHP sam doda cytaty, a następnie poprawnie zastosuje wprowadzony ciąg.
Należy zauważyć, że nie zawsze konieczne jest umieszczanie kluczy w cudzysłowach. Na przykład, nie ma potrzeby dołączania zmiennych lub stałych w cudzysłowach, ponieważ w tym przypadku dane wyjściowe tablicy w PHP mogą być niepoprawne, a polecenia te będą niepoprawnie przetwarzane.
Jeśli w przyszłości zespół programistów PHP podejmie decyzję o dodaniu nowego słowa kluczowego lub dodatkowej stałej, mogą wystąpić problemy. To samo dotyczy sytuacji, gdy stała z innego kodu zakłóca działanie macierzy. Na przykład możesz nie być w stanie używać słów, takich jak domyślny i pusty, ponieważ są to klucze zarezerwowane.
Dla każdego z kluczowych typów, konwersja wartości na tablice PHP, funkcje, których sam użytkownik wybiera, ostatecznie umożliwiają uzyskanie tablicy z pojedynczym elementem posiadającym wartość skalarną.
Jeśli zdecydujesz się przekonwertować obiekt na tablicę, wówczas w tym przypadku właściwości tego obiektu będą używane jako elementy tej tablicy. Po podjęciu decyzji, jak wyprowadzić tablicę w PHP, nazwy kluczy obiektu z pewnymi ważnymi wyjątkami będą używane jako klucze:
Wszystkie te dodane wartości mają po obu stronach zero bajtów, co dość często może spowodować nieoczekiwane zachowanie tablicy dla jej właściciela.
Jak widać, korzystanie z takich tablic jest wyjątkowo proste dla zaawansowanych użytkowników, a co ważniejsze, są niezwykle wygodne w ich użyciu. Nie można sobie wyobrazić dużego projektu bez użycia różnych rodzajów tablic, a jednocześnie staramy się brać pod uwagę tylko pewną część funkcji i dostępnych funkcji takich systemów, bez wchodzenia w jakiekolwiek subtelności tego, jak można je wykorzystać w różnych sytuacjach.