Extraction de données par array_filter
Bonjour,
Je reviens vers PHP après une longue période (1+an) d'abstinence et je coince sur un problème surement très basique, mais je coince:
J'ai un tableau de ce type:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
$tableau array[5]
[0] array[1]
[champ] string "Ma_donnee_1"
[1] array[1]
[champ] string "Ma_donnee_2"
[2] array[1]
[champ] string "variable_1"
[3] array[1]
[champ] string "variable_2"
[4] array[1]
[champ] string "Ma_donnee_3" |
Et je veux implode la liste des 'champ' dans une requete SQL:
Code:
1 2 3 4 5 6
|
$sql="SELECT * FROM table_champs WHERE champ IN(".implode(",",array_filter($tableau,
function($var){
if(array_key_exists("champ", $var))
return $var['champ'];
})).") "; |
Je pense que j'utilise bien le array_filter, puisque lorsque je debug, mon $var contient bien les array[1] contenant "champ", mais la requete finale donne ceci:
Code:
1 2
|
(string) Select DISTINCT(table_gestion) from ref_donnees_variables where donnee IN(Array,Array,Array,Array,Array) |
au lieu du contenu de "champ".
J'ai même tenté de return $var[0]['champ'], mais le IN est carrément vide avec ça.
Qu'est-ce qui peut être faux dans mon array_filter?
D'avance merci.
Vincent.