La résolution de l'Argument #2 devrait être un tableau dans'
Je suis en train de travailler avec le code suivant aimablement fournie dans la réponse ici mais il génère les erreurs suivantes
Warning: array_map() [function.array-map]: Argument #2 should be an array in [path/to] on [Line #]
et
'Warning: Wrong parameter count for array_intersect() in [path/to] on [line #]'
Googleing les erreurs n'a produit aucun des idées utiles - toute aide appréciée.
<?php
$types = array('.pdf', '.doc', '.xls');
if(0 < count(array_intersect(array_map('strtolower', $filename, $types)))) {
echo 'One';
} else {
echo 'Two';
}
?>
//mise à jour
<?php
$filename = array(get_post_meta(get_the_ID(), 'mjwlink-url'));
$types = array('.pdf', '.doc', '.xls');
if(0 < count(array_intersect(array_map('strtolower', $filename), $types))) {
echo 'One';
} else {
echo 'Two';
}
?>
- (Après l'OP de mise à jour) Ne vous obtenez toujours l'erreur?
Vous devez vous connecter pour publier un commentaire.
strtolower
prend exactement un argument, alors quearray_map
avec trois arguments($fun, $arr1, $arr2)
prend la fonctionfun
, qui doit prendre deux arguments lui-même:fun(arg1, arg2)
. Regardez l'Exemple #3 dansarray_map
s docs page.PS
$filename
variable n'est pas initialisée dans votre code?EDIT: Vous voulez probablement
array_intersect(array_map('strtolower', $filename), $types)
au lieu (vous mettez support au mauvais endroit)...$filename
s'contenu?var_dump
? Neget_post_meta
retour valeur correcte, alors?Pour
array_map
le deuxième argument doit être un tableau, donc je suppose que vous devriez être en train de passer$types
là et ne pas$filename
.Aussi, vous avez besoin de passer au moins deux des tableaux dans la
array_intersect
. Vous êtes en fait qu'en passant de là.