est-il possible si la fonction de rappel dans array_filter recevoir paramètre?
J'ai eu plusieurs tableau nommé $files[]
, qui se compose de clés et de valeurs comme ci-dessous :
[0] => Array
(
[name] => index1.php
[path] => http://localhost/php/gettingstarted/
[number] => 1
)
[1] => Array
(
[name] => index10.php
[path] => http://localhost/php/gettingstarted/
[number] => 2
)
[2] => Array
(
[name] => index11.php
[path] => http://localhost/php/gettingstarted/
[number] => 3
)
J'utilise ce code pour créer un nouveau tableau se composent de 'nom' des clés. Mais il n'a pas
array_filter($files, "is_inarr_key('name')");
function is_inarr_key($array, $key)
{
//TODO : remove every array except those who got the same $key
}
et j'obtiens cette erreur:
array_filter() [function.tableau-filtre]: Le deuxième argument, 'is_inarr_key('nom') " doit être valide rappel dans C:\xampp\htdocs\php\gettingstarted\index.php sur la ligne 15
Donc mes questions sont:
- Est-il possible d'effectuer l'appel à la fonction retour en arrière sur
array_filter
recevoir paramètre? - Ce qui est la règle générale de pouce sur la façon d'utiliser le callback dans toute fonction PHP?
OriginalL'auteur justjoe | 2010-03-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez créer une fermeture sur PHP ≥5.3.
Si vous êtes coincé avec PHP <5.3, ...
Vous pouvez faire
$key
une variable globale.Vous pouvez créer une classe
Vous pouvez créer 3 fonctions différentes
Vous pouvez écrire votre propre
array_filter
+1, mais si c'était de ma réponse, je voudrais la liste de la fermeture de la solution basée sur le premier et nous le conseillons sur les solutions de rechange. C'est le plus simple et le plus court des possibilités de loin.
OriginalL'auteur kennytm
Vous pouvez faire usage de la
array_walk
fonction:OriginalL'auteur codaddict
Je ne suis pas au courant si vous pouvez fournir la fonction de rappel avec des paramètres, mais comme une suggestion, vous pouvez définir une fonction de rappel pour
array_filter
Et pour obtenir le
name
de la matrice, tout en boucle sur la$file[]
et de récupérer lesname.
Puis, ayant laname
vous pouvez aller sur avec votre logique.HTH.
OriginalL'auteur Anthony Forloney
Vous pouvez utiliser create_function() dans la section 5.2.x
les sorties qui
OriginalL'auteur Jacob Singh
grâce KennyTM pour keyfilter classe de bon conseil.
Pour ceux que ça intéresse et qui ne savent pas comment le faire, c'est un travail détaillé exemple.
J'ai légèrement améliorée en utilisant une expression régulière pattern.
$files[]= {code};
de sortie:
OriginalL'auteur skyrail