Array search returnt 0
Ik heb in mijn script de array_search() functie. Deze returnt de key in de array waarnaar je op zoek bent.
Dit is mijn situatie:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$zoekProduct = 131; // voorbeeld
$product = array(131:1, 136:2);
$ID = array_search($zoekProduct, $product);
// functie zoekt dus naar 131 in de array.
if( $ID != false ):
// Product gevonden in array
else:
// Product niet gevonden in array
endif;
?>
$zoekProduct = 131; // voorbeeld
$product = array(131:1, 136:2);
$ID = array_search($zoekProduct, $product);
// functie zoekt dus naar 131 in de array.
if( $ID != false ):
// Product gevonden in array
else:
// Product niet gevonden in array
endif;
?>
Het probleem is dat de 131 in de array op key 0 staat. Hierdoor ziet PHP de variabele $ID als 0 oftewel false.
Wat kan ik hieraan doen? Ik heb al van alles geprobeerd, maar het lukt niet...
Groeten,
Dennis
Returns the key for needle if it is found in the array, FALSE otherwise.
If needle is found in haystack more than once, the first matching key is returned. To return the keys for all matching values, use array_keys() with the optional search_value parameter instead.
Warning
This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE. Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.
131[1]; van maken
Reshadd farid op 29/02/2012 19:05:39:
een array heeft standaard als begin een 0 als key dus je moet er iets als
131[1]; van maken
131[1]; van maken
Heeft niets met het probleem te maken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$zoekProduct = 131; // voorbeeld
$product = array(131:1, 136:2);
$ID = false;
$ID = array_search($zoekProduct, $product);
// functie zoekt dus naar 131 in de array.
if($ID === FALSE):
// Product niet gevonden in array
else:
// Product gevonden in array
endif;
?>
$zoekProduct = 131; // voorbeeld
$product = array(131:1, 136:2);
$ID = false;
$ID = array_search($zoekProduct, $product);
// functie zoekt dus naar 131 in de array.
if($ID === FALSE):
// Product niet gevonden in array
else:
// Product gevonden in array
endif;
?>
De variabele ID wordt dus eerst op false gezet, stel dat array_search dan 0 zou returnen dan maakt dat niet uit omdat d.m.v. === naar de waarde false (alleen letters, dus niet 0) wordt gekeken. :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$zoekProduct = 131; // voorbeeld
$product = array(131:1, 136:2);
$ID = array_search($zoekProduct, $product);
// functie zoekt dus naar 131 in de array.
if ($ID !== false) {
// Product gevonden in array
}
?>
$zoekProduct = 131; // voorbeeld
$product = array(131:1, 136:2);
$ID = array_search($zoekProduct, $product);
// functie zoekt dus naar 131 in de array.
if ($ID !== false) {
// Product gevonden in array
}
?>
Toevoeging op 01/03/2012 18:31:35:
"omdat d.m.v. === naar de waarde false (alleen letters, dus niet 0) wordt gekeken. :)"
Wat je hier zegt klopt niet. Leuk verzonnen maar onwaar. Met === controleer je ook of het type van de variabele overeenstemt (in dit geval de BOOLEAN false).
excuses, dat bedoelde ik inderdaad.