Array_map fonction en php avec le paramètre
J'ai cette
$ids = array_map(array($this, 'myarraymap'), $data['student_teacher']);
function myarraymap($item) {
return $item['user_id'];
}
Je voudrais mettre un autre paramètre à ma fonction pour obtenir quelque chose comme
function myarraymap($item,$item2) {
return $item['$item2'];
}
Peuvent quelqu'un peut m'aider ? J'ai essayé beaucoup de choses mais rien n'travail
- Que voulez-vous
$item2
être? Une valeur constante? - Je pense que votre appel à
array_map
est erronée. Pourriez-vous fournir un bon exemple? - array_map : Le nombre de paramètres que la fonction de rappel accepte doit correspondre au nombre de tableaux passés à la array_map() Astuce : Vous pouvez utiliser un tableau comme param titulaire par exemple tableau array_map ( callable $callback, array_to_map,array('param') )
Vous devez vous connecter pour publier un commentaire.
Outre la création d'un objet mappeur, il n'y a pas beaucoup que vous pouvez faire. Par exemple:
Et puis à l'intérieur de votre fonction, au lieu de créer votre propre mappeur, l'utilisation de la nouvelle classe:
Cela vous permettra de créer un mappeur qui peut retourner n'importe quel type d'information... Et vous pouvez complexifier votre customMapper à accepter plus de champs ou de configuration facilement.
Vous pouvez utiliser un fonction anonyme et de transmettre la valeur de la variable locale dans votre
myarraymap
second argument de cette façon:Normalement, il suffit de passer juste valeur à l'intérieur anonyme corps de la fonction:
PHP
array_map
prend en charge un troisième paramètre est un tableau représentant les paramètres à passer à la fonction de rappel. Par exemple couper la/
char de tous les éléments du tableau peuvent être fait comme suit:Beaucoup plus facile que d'utiliser des fonctions personnalisées, ou d'autres fonctions comme le
array_walk
, etc.*N. B. Comme indiqué dans les commentaires ci-dessous, j'ai été un peu rapide, et le troisième paramètre n'a en effet besoin d'être de la même longueur que la seconde qui est accompli avec
array_fill()
.Le au-dessus de sorties:
$trimmed = array_map('trim',array('/some/','/link'),array('/', '/'));
Envisager d'utiliser array_walk. Il vous permet de passer
user_data
.Envisager l'utilisation de la troisième paramètre de
array_map
fonction pour passer paramètre supplémentaire àcallable
fonction. Exemple:Ref: https://www.php.net/manual/en/function.array-map.php
Les docs dit à propos de la troisième param de
array_map
fonction: "Complémentaire variable de la liste d'arguments de type tableau de courir à travers la fonction de rappel."