Versio

in_array

Overzicht Reageren

- Roland -

- Roland -

10/11/2009 10:45:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$c
=range('0','9');

 echo in_array('p',$c);

?>


ik verwacht 0 maar hij echo't 1

wat is hier fout ?
 
PHP hulp

PHP hulp

25/05/2012 04:01:32
Gesponsorde koppelingen:
 
Koen

koen

10/11/2009 10:54:00
Quote Anchor link
hmm, als je hem op strict zet, (in_array)
dan geeft ie niks :S
 
- Roland -

- Roland -

10/11/2009 11:06:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$c
=range('0','9');

 echo in_array('4',$c,TRUE);

?>


NEE , maar dan geeft ie ook niks als ie het wel zou moeten !! ?? !!
 
Karl Karl

Karl Karl

10/11/2009 11:08:00
Quote Anchor link
P wordt waarschijnlijk getypecaste naar een int. Dan wordt dat een 0.
Zie ook maar met array_search
Dat dat wat je nu doet niet werkt klopt want:
Nummers horen niet tussen quotes (' of "), dan zijn het strings!
Edit: Ga jij maar language.types leren.
Edit2: @Hieronder, Koen, lees dit bericht. Dan weet je waarom die het wél doet en die andere het niet doet.
Gewijzigd op 01/01/1970 01:00:00 door Karl Karl
 
Koen

koen

10/11/2009 11:10:00
Quote Anchor link
als je in dit geval:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$c
= range(0,9);

echo in_array(4, $c,true);

?>

gebruikt doet ie je fout niet, maar de goeie wel
edit:
@karl, daarom had ik dit geplaatst, om daar op te wijzen,
maar je had al uitleg geplaatst ;)
Gewijzigd op 01/01/1970 01:00:00 door koen
 
- Roland -

- Roland -

10/11/2009 11:24:00
Quote Anchor link
Dat dit nog problemen kan opleveren (had ik niet verwacht)

"Nummers horen niet .... "

:) @karl hangt van situatie af , kan natuurlijk wel , ik wil ook zoeken naar tekst

array_search is hier ook niet helemaal handig (doet het wel) , maar:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$c
=range('0','9');
echo array_search('rt',$c);


$c=range('0','9');
echo array_search('0',$c);
?>

beide geven 0 en daaar kom je ook niet verder mee . . .


[ edit @ karl

maar ik wil ook dit kunnen checken (vandaar dus als strings )

$c=range(0,9);

echo in_array('w',$c);
en dat kan weer niet . .
]
Gewijzigd op 01/01/1970 01:00:00 door - Roland -
 
Koen

koen

10/11/2009 11:27:00
Quote Anchor link
omg, hij vind in die tweede je 0 wel, maar echoed de 0 die die dan vind...

uitgeschreven:
"hmm waar vind je '0' in $c,
op plaats 0 van de array...
wat staat daar? '0'.
en die moet geechoed:
'0'
klaar..."
snappie?
Gewijzigd op 01/01/1970 01:00:00 door koen
 
- Roland -

- Roland -

10/11/2009 11:34:00
Quote Anchor link
Ja koen, dat had ik ook reeds bedacht, snappie :) ?

maar feit blijft dat het dus ook hiermee niet simpel is te testen
 
TJVB tvb

TJVB tvb

10/11/2009 11:35:00
Quote Anchor link
//met === false vergelijken of het daadwerkelijk false is (en dus niet een 0)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$c
=range('0','9');
$found = array_search('rt',$c);
if($found === false)
{

  echo 'Not found'.PHP_EOL;
}

else
{
  echo 'Found on '.$found.PHP_EOL;
}



$c=range('0','9');
$found = array_search('0',$c);
if($found === false)
{

  echo 'Not found'.PHP_EOL;
}

else
{
  echo 'Found on '.$found.PHP_EOL;
}

?>
 
Karl Karl

Karl Karl

10/11/2009 11:36:00
Quote Anchor link
roland schreef op 10.11.2009 11:24:
"Nummers horen niet .... "

:) @karl hangt van situatie af , kan natuurlijk wel , ik wil ook zoeken naar tekst

Nee, nummers horen niet tussen quotes.
Je kunt natuurlijk wel een string hebben met een nummer erin:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$blaat
= 'ik heb 5 appels';
?>

Met die string kan je niet rekenen.
Als je wilt rekenen, dan moet je het zo doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$appels
= 5;
$peren = 4;
$blaat = 'ik heb '. $appels . ' appels en ' . $peren . ' peren, samen is dat ' $appels + $peren;
?>



roland schreef op 10.11.2009 11:24:
array_search is hier ook niet helemaal handig (doet het wel) , maar:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$c
=range('0','9');
echo array_search('rt',$c);


$c=range('0','9');
echo array_search('0',$c);
?>

beide geven 0 en daaar kom je ook niet verder mee . . .

Jawel, nu zie je dus dat die strings getype caste wordt naar 0 welke dus wel in die array zit, dat het is het nulde element van die array. Zie ook language.types.type-juggling en heb je al language.types geleerd? Volgens mij niet.

koen schreef op 10.11.2009 11:27:
omg, hij vind in die tweede je 0 wel, maar echoed de 0 die die dan vind...

uitgeschreven:
"hmm waar vind je '0' in $c,
op plaats 0 van de array...
wat staat daar? '0'.
en die moet geechoed:
'0'
klaar..."
snappie?

Jij gaat ook maar mooi php leren. Je kunt er geen ene ruk van. Ik leg het gewoon uit, en dan snap je het nog niet.

@jullie beide, ik roep dan wel leuk wat functie's, kijk dan ook wat ze doen i.p.v. blind overnemen zie bijvoorbeeld:
array_search
Ik maak er ook niet voor niks overal een linkie van. Dan kan je d'r op klikken. Is wat makkelijker voor jullie.
 
TJVB tvb

TJVB tvb

10/11/2009 11:37:00
Quote Anchor link
Het staat er zelfs bij
php.net:
Warning

This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "". Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.


Eerst lezen en dan pas vragen, niet eerst vragen en dan pas lezen.
 



Overzicht Reageren