Funkcja sizeof jest aliasem count () w PHP, count (), dostaje szereg „klucz - wartość” tablicy lub obiektu. Parametr wymagany jest tablicą lub obiektu opcjonalnie - COUNT_RECURSIVE druga wartość, lub 1 (domyślnie 0), jeśli jest zainstalowany uważa rekurencyjnie.
PHP: Jak zmniejszyć liczbę iteracji w pętli i skrócić czas wykonywania skryptu?
$ array = array (
"fruit" = & gt; array (
"Apple"
"banany,"
"pomarańczowa",
),
"warzywa" = & gt; tablica (
"ziemniaki",
"pomidory", (14 )),
);
echo "Default =" .sizeof ($ tablica); //Default = 2
echo "Recursive =" .sizeof ($ tablica, 1); //Recursive = 7
Testowanie dużych tablic w pętli (ponad 65.000 pozycji) wykazało, że sizeof () zamiast count (), więc ma to sens, aby zastosować go w praktyce.
& lt ;! - fb_336x280_1 - & gt;
& lt; skrypt & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
W cyklach zawsze lepiej zastąpić zmienną sizeof php, w przeciwnym razie rozmiar matrycy będzie określony w każdej iteracji, co spowalnia proces.
$ test = array (123 4);
$ sizeof_test = sizeof ($ test);
($ it = 0; $ echo $ Test [$ to],
}
,
Jeżeli cykl testowy 1000 wartości odnobaytnыh czas przepływania fabrycznie ze zmienną mniej 250 razy
rozpatruje tablicę wartości zerowej.
$ test2 = tablica (”Null, pozornie, 0),
var_dump (sizeof ($ test2) ) //drukuje int
var_dump (sizeof (array_filter ($ test2))) //drukuje int
,
Jak widać z przykładu, sizeof php (i liczby też)weź pod uwagę liczbę elementów, w tym zero, dlatego należy wziąć pod uwagę i (jeśli to konieczne) usunąć puste wartości za pomocą array_filter lub innej funkcji użytkownika.
& lt ;! - fb_336x280_2 - & gt;
& lt; skrypt & gt; (adsbygoogle = window.adsbygoogle || []). push ({});Dodaj tablicę $ test2:
$ test2 = array (", zero" false ", 0 array ()); //print int
$ test2 = array (", zero," false ", 0 tablica (null)); //wyświetli int
,
var_dump (sizeof (array_filter ($ test2)));
W tym przykładzie array_filter usunięte wszystkie puste wartości tablicy jednowymiarowe, ale nie jest rekurencyjne działanie, dzięki czemu wartość „brak”, „wewnętrzny” pozostaje w stanie stałym, co oznacza, że pozwala na sizeof php.
Zobaczmy, co się stanie, jeśli usuniesz plik tablicowy?
$ test2 = array (", zero, false", 0 array ()); //output int
$ test2 = array (", zero," false " , 0 tablica (zero)); //drukuje int ,
$ t_rec = tablica ("zerowy 'fałszywe' 0 Tablica ()) //drukuje int ,
$ t_rec = tablica (" zerowy „fałszywy ', 0 array (null)); //output int
var_dump (sizeof ($ test2));
var_dump (sizeof ($ t_rec, 1));
Jeśli puste nie zostały celowo wprowadzone do kodu, lepiej jest się ich pozbyć za pomocą funkcji filtru przed uruchomieniem pętli. Spowoduje to usunięcie dodatkowych iteracji cyklu i skrócenie czasu wykonania procesu.
,
, jak obliczyć obiektu StdClass json_decode utworzonych za pomocą php sizeof?
, jak obliczyć obiektu StdClass json_decode utworzonych za pomocą php sizeof?
$ json = '{' foo ': bar, numer: 10, samochód: BMW} ";
$ stdInstance = json_decode ($ json);
var_dump (sizeof ((array) $ stdInstance)); //wyświetla int
var_dump (sizeof (get_object_vars ($ stdInstance))); //wyświetla int
,
sizeof () określa liczbę elementów w macierzy lub obiektu dające się zliczyć. StdClass nie jest ani tym, ani drugim. Aby uzyskać obiekt w postaci tablicy,użyj funkcji get_object_vars. Pierwsza opcja (tablica) również działa, ale nadal druga opcja wydaje się bardziej niezawodna.
Get_object_vars służą do uzyskiwania niestatycznych właściwości obiektu, co doskonale pasuje do naszego przykładu.