Php gyors ellenőrzés értékek egy nagy tömb
Folyamatosan felmerülő probléma csekket érték a tömbben. A PHP erre a célra gyakran használják in_array funkció, amely két paramétert: a kívánt értéket (vagy tömb értékek) és a tömb, amiben lesz egy keresést. Ha az érték talált, akkor a függvény igaz. egyébként hamis.
A probléma leírása
Míg a tömb értékeit egy kicsit, aztán gyorsan működik. De amint a tömb nő akár 10 000-20 000 elem, a problémák kezdenek.
Az egyik forgatókönyv, hogy ellenőrizze az egyediségét elemek erre útján az adatbázis nem működik, mert egy tömböt a kérést az adatbázis többször módosították. A tömb tárolja csak numerikus azonosítója elemek (ez hasznos határozat). Egy bizonyos ponton, az elemek egyre 60000, és a szkript kezdett dolgozni 20-30 másodpercig. a helyi gépen, ami rendkívül lassú.
Egy egyszerű mérési kódok végrehajtását szegmensek ideje (microtime () funkció), hogy ez a probléma in_array.
kezelése
Ha belegondolunk, hogy rendezni az egész tömb minden egyes alkalommal, hogy ellenőrizze, hogy létezik olyan eleme van buta. Sokkal könnyebben ellenőrizhető, hogy létezik egy adott elem a tömbben, nem megy át a többi értéket. Ehhez helyett egy tömböt a forma kulcs => érték (ID elem) szeretne használni egy sor kulcsfontosságú fajok (ID elemek) => néhány érték (pl igaz).
Ebben az esetben, hogy ellenőrizze a létezését egy elem a tömbben elegendő használni a isset () függvény. amelyben, hogy átmenjen egy változó űrlapot $ array_name [kívánt elem azonosítója].
A rendszerváltást követően az ilyen módon való tesztelése a forgatókönyvet kezdett dolgozni ki 1,2 s, ami teljesen normális.
Tisztelettel KO =)