többdimenziós tömb in_array vizsgálata
Sziasztok,
meg szeretném oldani, hogy ne legyen duplikáció egy tömbben, mégpedig úgy, hogy amikor töltöm fel a tömböt vizsgálja meg, hogy létezett-e már ilyen bejegyzés.
vizsgálandó tömb:vizsgálat:de már próbáltam ezerféleképpen, vagy nem csinált semmit, vagy mindig TRUE lett az if, vagy "Warning: in_array() [function.in-array]: Wrong datatype for second argument in"
pl.:előre is köszi!
■ meg szeretném oldani, hogy ne legyen duplikáció egy tömbben, mégpedig úgy, hogy amikor töltöm fel a tömböt vizsgálja meg, hogy létezett-e már ilyen bejegyzés.
vizsgálandó tömb:
$_SESSION['sor'][] = array (
"esemeny" => $_POST['meccs'],
"kimenetel" => $_POST['tipp'],
);
if (in_array($_POST[meccs], $_SESSION['sor']))
{
print "Már szerpel a tömbben!";
}
pl.:
if (in_array(array('esemeny' => $_POST[meccs], 'kimenetel' => $_POST[tipp]), $_SESSION['sor']))
{
print "Már szerpel a tömbben!";
}
...
Udv
Sanyi
Én sem értem pontosan,
Azért biztos ami biztos írjuk le:
Szóval legyen $meccs a $_POST['meccs'] leellenőrzött értéke, ami azonosítója is a meccsnek, illetve $tipp a $_POST['tipp'] leellenőrzött értéke, ami a program logikájától függően lehet bármi.
Ebben az esetben ha tárolod a beérkezett adatokat, hogy $_SESSION['sor'][$meccs] = $tipp, akkor a létezést ennyi leellenőrizni:
Ez milyen? if
Nem jó
Hm...
megoldás
végül is végigpörgetem a tömböt és kirakom az eseményeket és úgy vizsgálom át, persze előtte csekkolom, hogy nem üres-e a tömb, mert akkor csúnya hibaüzenetet kapok:
Nem több dimenziós
Az én megoldásom - ahogy Thoeré sem - nem használ több dimenziós tömböt! Pont ez a lényeg!
A kÍvánt eredményt elérheted egydimenziós tömbbel, és Így nem bonyolÍtod a saját életed és némi overhead-et is megspórolsz!
már értem