Comment puis je chercher si le mot autocomplete est dans formOptionsArray, de meme pour on et off:
$formOptionsArray = array("autocomplete" => array('on', 'off'));
Merci
$formOptionsArray = array("autocomplete" => array('on', 'off'));
if ($formOptionsArray['autocomplete']) {
[...]
}
Ou encore :
if (isset($formOptionsArray['autocomplete']) && $formOptionsArray['autocomplete']) {
[...]
}
$formOptionsArray = array(
"autocomplete" => array('on', 'off'),
"target" => array('_self', '_blank', '_parent', '_top'),
"novalidate" => "novalidate",
"DISABLED"
);
Je rebondi sur ce message pour préciser que le coup du isset() sur les clefs de tableau est une mauvaise habitude qui peut dans certains cas causer des problèmes pénibles, en effet pour peu que la valeur associée à cette clef soit nulle, isset() retournera false. Mieux vaut donc utiliser array_key_exists() qui est LA fonction faîte pour tester l'existence d'une clef dans un tableauOu sinon :
$autocompleteActivated = isset($formOptionsArray['autocomplete']) && $formOptionsArray['autocomplete'] == 'on';
$a = array('titi' => 1, 'toto' => null);
var_dump(isset($a['titi']), isset($a['toto']));
affiche
Code : Tout sélectionner
bool(true) bool(false) Example #2 array_key_exists() vs isset()
isset() does not return TRUE for array keys that correspond to a NULL value, while array_key_exists() does.
function test($nom,$option)
{
global $formOptionsArray;
if( array_key_exists($nom, $formOptionsArray) === true )
{
if( array_seach($option,$formOptionsArray[$nom]) === true )
{
return true;
}
}
return false;
}
Ceci en gardant ta structure de données.if( array_key_exists("autocomplete", $formOptionsArray) === true )
{
echo "autocomplete présent<br>";
if(array_search("on",$formOptionsArray['autocomplete']) === true )
{
echo "on présent<br>";
}
else
{
echo "n'est pas présent<br>";
}
if( array_search("off",$formOptionsArray['autocomplete']) === true )
echo "off présent<br>";
}