Autor Zpráva
last
Profil *
zhlediska výkonu, přehlednosti, dohledávání chyb atd. by mně zajímalo kdo má jaký zkušenosti s timahle dvěma funkcema:
array_slice();
unset();

malá ukázka pro pochopení co mám na mysli konkrétně:
/**
 * řekněme že nějaké stránce odesílám data pomocí post
 * mám tedy nějaké asociativní superglobální pole $_POST
 * a teď bych z něj potřeboval odebrat třeba první 4 indexovaný hodnoty,
 * předpokládám, že hodnoty které chci odebrat předem znám,
 * ale nebráním se situaci, že by se z(e) (ne)známích důvodů nějaká hodnota nepředala
 */
//1 možnost
$array = array_slice( $_POST, 4 );

//2 možnost
unset( $_POST["var1"], $_POST["var2"], $_POST["var3"], $_POST["var4"] );
$array = $_POST;

Mastodont
Profil
Z hlediska výkonu i přehlednosti by bylo určitě lepší kopírovat data k předání do jiného pole a $_POST nechat být.
last
Profil *
Dík za reakci, ale na to sem se neptal, ten $_POST mně napad jen náhodou (schoda okolností, že sem s ním zrovna něco programoval)...
$array = array_slice( $pole, 4 );

unset( $pole["var1"], $pole["var2"], $pole["var3"], $pole["var4"] ) ;
$array = $pole;
Majkl578
Profil
last:
zhlediska výkonu
Pokud s původním polem nepotřebuješ dále pracovat (v nezměněné formě), unset bude zřejmě paměťově méně náročná operace, jelikož nevytváří kopii.

přehlednosti
Použití array_slice bude pravděpodobně přehlednější.

dohledávání chyb
U unset se můžeš setkat s tím, že odstraníš jiné hodnoty než ty první v poli. U array_slice s opakem. (Otázkou zůstává, podle čeho a jak spolehlivě se vstupní pole řadí).

atd.
Záleží na konkrétním případu, obecně totiž neslouží k tomu samému.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0