Je ne sais pas pourquoi cela se passe, mais mon script ne semble pas être en mesure de retourner vrai pour in_array plus d'une fois ...php in_array - un comportement inattendu
$saved = '15,22';
$set = explode(",",$saved); //results in Array ([0] => 15 [1] => 22)
Ensuite, j'interroger la base:
$result = pg_query("SELECT did,vid,iid,value FROM demographicValues");
if(pg_num_rows($result) > 0) {
while($r = pg_fetch_array($result)) {
$demo[$r['did']][$r['vid']]['value'] = $r['value'];
if(in_array($r['vid'], $set)) {
$demo[$r['did']][$r['vid']]['status'] = 1;
}
}
} else...
Si je print_r $ démo, vous pouvez voir que la vid 22 est là, donc, je ne comprends pas pourquoi la situation n'est pas réglé en conséquence?
Array
(
[Mant] => Array
(
[15] => Array
(
[value] => Proper
[checked] => 1
)
[16] => Array
(
[value] => Parish
)
[Comp] => Array
(
[22] => Array
(
[value] => 65 - 70
)
[23] => Array
(
[value] => 35 - 50
)
)
)
Notez que j'ai aussi essayé array_intersect et array_flip sur le plateau de $, alors isset ...
Il peut y avoir des espaces ou d'autres caractères invisibles qui gâchent le code. Pouvez-vous utiliser 'var_dump' plutôt que' print_r'? Il va mettre des guillemets autour des chaînes et nous dire le nombre de variables. –
si vous ajoutez 'var_dump ($ r ['vid'], $ set)' juste avant la ligne 'in_array' - que dit-elle? – user187291
Merci beaucoup ... Oui, l'ensemble $ a eu des espaces inutiles, et l'utilisation de la garniture a permis de travailler ... Merci! – n00b0101