praegune kellaaeg 23.06.2025 04:05:49
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
SGM
HV kasutaja

liitunud: 04.12.2005
|
02.11.2008 19:20:51
php in_array() ajab segast! |
|
|
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
|
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
1 :: |
0 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
DoS
HV veteran

liitunud: 19.08.2002
|
02.11.2008 19:39:02
|
|
|
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 |
|
 |
SGM
HV kasutaja

liitunud: 04.12.2005
|
03.11.2008 14:35:50
|
|
|
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!
|
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
1 :: |
0 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
03.11.2008 14:41:21
|
|
|
näita siis enda kood ette
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
SGM
HV kasutaja

liitunud: 04.12.2005
|
03.11.2008 16:54:07
|
|
|
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!
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 |
|
 |
linnumees
HV kasutaja
liitunud: 15.06.2005
|
03.11.2008 17:06:52
|
|
|
explode() võtab vormist väärtuse, mitte $string'i.
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
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.
|