Avaleht
uus teema   vasta Tarkvara »  WWW »  php in_array() ajab segast! märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
SGM
HV kasutaja
SGM

liitunud: 04.12.2005



Autoriseeritud ID-kaardiga

sõnum 02.11.2008 19:20:51 php in_array() ajab segast! vasta tsitaadiga

Väga kummaline ja närvid ära rikkunud probleem. Kes oskab aidata - olen väga tänulik!
Mul on array, mille sees on nimed. Näiteks $nimed = array("Jaan","Tom","Mart"); Siis on teine muutuja $nimi, milles on kellegi nimi. Vaja on nii teha, et kui muutujas on mõni eelnimetatud array's esinevatest nimedest, siis teeks midagi.
Koodis on nii: if(in_array($nimi, $nimed)) { ... } Aga asi ei toimi. Toimib siis, kui $nimed array'le anda staatiliselt (nagu enne see $nimed näide). Aga kui tekitan selle array hoopis stringist, mis on nii: $string = "Jaan,Tom,Mart" --> $nimed = explode(",", $string); ja siis ei toimi (nagu ei leiaks stringi array-st üles!!!), kuid ometi array on array! Mujal ei näe mitte mingit vahet! echo $nimed[1] kuvab ilusti välja "Tom", nagu ka selle käsitsi tehtud array puhul.
Seega mul on mõistus ja närvid otsas. Miks array != array icon_question.gif
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 02.11.2008 19:33:12 vasta tsitaadiga

http://mikk36.eu/test/in_array.php
http://mikk36.eu/test/in_array.phps
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 02.11.2008 19:39:02 vasta tsitaadiga

Vaata ega sul seal lähtestringis tühikuid vms ei ole.
explode(',','Jaan, Tom, Mart') tekitab array([0]=>'Jaan',[1]=>' Tom',[2]=>' Mart') ja ' Tom' != 'Tom'
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
SGM
HV kasutaja
SGM

liitunud: 04.12.2005



Autoriseeritud ID-kaardiga

sõnum 03.11.2008 14:35:50 vasta tsitaadiga

Ei ole tühikuid, vaatasin. Ja kõik toimub sama põhimõtte järgi nagu mikk36 näide, aga vaat mul ei suuda ta leida sealt array seest õiget nime, kui ma stringist loon selle array. :S
Tegin echo $string, echo $nimi ja print_r($nimed) vahetult enne in_array() ja see kuvas kõik välja õigesti. See paneb hullult imestama, et miks ta siis ikka ei leia sealt seda õiget nime! icon_eek.gif
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 03.11.2008 14:41:21 vasta tsitaadiga

näita siis enda kood ette
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
SGM
HV kasutaja
SGM

liitunud: 04.12.2005



Autoriseeritud ID-kaardiga

sõnum 03.11.2008 16:54:07 vasta tsitaadiga

Kõigepealt on string nimedega:

$string = "Jaan,Tom,Mart";

Siis on form, millesse kirjutan nime:

<input type="text" name="nimi">
<input type="hidden" name="nimed">
...

Teises failis, kuhu FORM suunab (üle URLi), on selline kama:

$nimi   = $_POST["nimi"];
$nimed   = $_POST["nimed"];

$nimed_arr = explode(",", $nimed);

if(in_array($nimi,$nimed_arr))
{
    $a = $b;
    $c = '1';
    $d='2';
}


Ja see ei tunne ära, kui sisestada näiteks "Tom" või see panna kasvõi hidden väljaga või muutujaga! icon_rolleyes.gif
Mul toimub muidu kõik see praegune jeblamine Netpointi tasuta konto all.

EDIT:

Sain tööle, kui kirjutasin uuesti koodi üle, seekord ühekordsete jutumärkidega. Imelikud asjad toimuvad...
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 03.11.2008 17:06:52 vasta tsitaadiga

explode() võtab vormist väärtuse, mitte $string'i.
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  php in_array() ajab segast!
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.