Maison  >  Article  >  développement back-end  >  Méthode de filtrage pour le tableau multidimensionnel php

Méthode de filtrage pour le tableau multidimensionnel php

PHPz
PHPzoriginal
2023-04-18 09:47:26863parcourir

Le traitement des données en PHP est une exigence très courante, parmi laquelle les tableaux multidimensionnels sont l'une des structures de données courantes. Cependant, lors de l'utilisation de tableaux multidimensionnels, nous ne pouvons éviter d'effectuer certaines opérations de filtrage des données pour garantir l'exactitude et la légalité des données. Cet article présentera la méthode de filtrage des tableaux multidimensionnels en PHP.

1. Méthode de filtrage array_map

array_map() est une fonction fournie par PHP qui peut transmettre chaque élément d'un ou plusieurs tableaux à une fonction de rappel personnalisée spécifiée et renvoyer un nouveau tableau. Les éléments du tableau sont les éléments traités par. la fonction de rappel.

Nous pouvons utiliser la fonction array_map() pour implémenter un filtrage de tableau multidimensionnel. La méthode spécifique consiste d'abord à parcourir le tableau multidimensionnel, à transmettre les éléments qui doivent être filtrés à la fonction de filtre pour traitement, puis à enregistrer les résultats traités dans un nouveau tableau. Voici un exemple simple :

// 多维数组
$data = array(
    array(
        'name' => '张三',
        'age' => 18,
        'sex' => 'male',
        'hobby' => array('swimming', 'reading', 'music'),
    ),
    array(
        'name' => '李四',
        'age' => 22,
        'sex' => 'female',
        'hobby' => array('swimming', 'dancing', 'shopping'),
    ),
);

// 过滤函数
function filter($item) {
    if (!is_array($item)) { 
        return trim($item); // 非数组的元素进行trim()处理
    } else { 
        return array_map('filter', $item); // 数组的元素递归调用filter()函数进行处理
    }
}

$new_data = array_map('filter', $data); // 过滤后的多维数组

Dans l'exemple ci-dessus, nous définissons une fonction de filtre filter() En jugeant si l'élément est un tableau, nous appelons la fonction trim() fournie par PHP sur les éléments non-tableaux pour. traiter le tableau. L'élément s'appelle récursivement pour le traitement, et enfin le résultat traité est enregistré dans le nouveau tableau $new_data via la fonction array_map().

2. Méthode de filtrage array_walk_recursive

array_walk_recursive() est une fonction fournie par PHP, qui peut appliquer une fonction définie par l'utilisateur à chaque élément d'un tableau multidimensionnel. Cette fonction reçoit deux paramètres : le premier paramètre est la valeur de. l'élément actuel. Le deuxième paramètre est le nom de clé de l'élément actuel. Afin de filtrer les données du tableau, nous pouvons utiliser cette fonction pour parcourir récursivement les éléments du tableau un par un, puis traiter les éléments qui doivent être filtrés. Voici l'exemple de code :

// 多维数组
$data = array(
    array(
        'name' => '张三',
        'age' => 18,
        'sex' => 'male',
        'hobby' => array('swimming', 'reading', 'music'),
    ),
    array(
        'name' => '李四',
        'age' => 22,
        'sex' => 'female',
        'hobby' => array('swimming', 'dancing', 'shopping'),
    ),
);

// 过滤函数
function filter(&$value, $key) {
    if (is_string($value)) {
        $value = trim($value); // 对字符串类型进行trim()处理
    }
}

array_walk_recursive($data, 'filter'); // 过滤后的多维数组

Dans l'exemple ci-dessus, nous avons défini une fonction de rappel filter(), qui accepte deux paramètres. Le premier paramètre $value est la valeur de l'élément actuel et le deuxième paramètre $key est la valeur. valeur actuelle. Le nom de clé de l’élément. Utilisez la fonction is_string() pour déterminer si l'élément actuel est de type chaîne. Si tel est le cas, appelez la fonction trim() fournie par PHP pour le traitement.

Une fois la fonction de filtre définie, nous implémentons l'opération de parcours sur le tableau multidimensionnel en appelant la fonction array_walk_recursive(), transmettons chaque élément à la fonction de rappel pour traitement et obtenons enfin le résultat filtré.

3. Méthode de filtrage array_filter

array_filter() est une fonction fournie par PHP, qui peut filtrer un tableau donné en fonction de la fonction de rappel spécifiée. Il parcourt chaque élément du tableau et applique la fonction de rappel à chaque élément. La valeur de retour est un tableau d'éléments qui sont évalués à VRAI dans la fonction de rappel.

Nous pouvons utiliser la fonction array_filter() pour filtrer les tableaux multidimensionnels. La méthode spécifique consiste à parcourir les éléments du tableau multidimensionnel et à enregistrer les éléments qui répondent aux conditions de filtrage dans un nouveau tableau. Voici un exemple simple :

// 多维数组
$data = array(
    array(
        'name' => '张三',
        'age' => 18,
        'sex' => 'male',
        'hobby' => array('swimming', 'reading', 'music'),
    ),
    array(
        'name' => '李四',
        'age' => 22,
        'sex' => 'female',
        'hobby' => array('swimming', 'dancing', 'shopping'),
    ),
);

// 过滤函数
function filter($item) {
    return (strlen($item['name']) > 2); // 过滤满足条件的元素
}

$new_data = array_filter($data, 'filter'); // 过滤后的多维数组

Dans l'exemple ci-dessus, nous définissons une fonction de rappel filter(), qui est utilisée pour traiter les éléments qui doivent être filtrés. Dans la fonction filter(), nous renvoyons TRUE pour les éléments qui remplissent certaines conditions (ici la longueur de 'name' est supérieure à 2), sinon nous renvoyons FALSE. Une fois la fonction de filtre définie, nous appelons la fonction array_filter() et transmettons le tableau à filtrer ainsi que la fonction de filtre pour obtenir les résultats filtrés.

En résumé, nous pouvons utiliser diverses méthodes pour filtrer des tableaux multidimensionnels, notamment des fonctions telles que array_map(), array_walk_recursive() et array_filter(). La méthode à choisir dépend du scénario d'application et des besoins spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn