Dans PHP, Array_Filter () est une fonction très courante qui filtre les éléments d'un tableau basé sur une fonction de rappel donnée. Il génère un nouveau tableau en supprimant des éléments qui ne répondent pas aux critères. Bien que Array_Filter () soit un outil concis, la lisibilité du code peut être réduite sans utilisation raisonnable. Pour améliorer la lisibilité du code, nous pouvons utiliser les opérateurs ternaires pour simplifier l'écriture des fonctions de rappel.
La fonction Array_Filter () accepte deux paramètres: un tableau et une fonction de rappel. Il iratera sur chaque élément du tableau, conservera l'élément dont la valeur de retour de la fonction de rappel est vraie et l'élément dont la valeur de retour est faux est filtré.
<?php
$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$filteredNumbers = array_filter($numbers, function($number) {
return $number % 2 === 0; // Seuls même les nombres sont conservés
});
print_r($filteredNumbers);
?>
Le résultat de la sortie est:
Array
(
[1] => 2
[3] => 4
[5] => 6
[7] => 8
)
L'opérateur ternaire ( ? :) est une expression conditionnelle concise qui nous permet de porter des jugements conditionnels dans une ligne. Nous pouvons utiliser les opérateurs ternaires pour simplifier la logique des fonctions de rappel dans array_filter () pour la rendre plus concise et facile à lire. Surtout lorsqu'une valeur est nécessaire pour être simple, l'opérateur ternaire peut rendre le code plus compact.
Supposons que nous voulons filtrer un tableau, en gardant tous les éléments supérieurs à 5. Nous pouvons implémenter cette logique via l'opérateur ternaire:
<?php
$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$filteredNumbers = array_filter($numbers, function($number) {
return $number > 5 ? true : false; // Si plus grand de5,retour true
});
print_r($filteredNumbers);
?>
Le résultat de la sortie est:
Array
(
[5] => 6
[6] => 7
[7] => 8
[8] => 9
)
Dans cet exemple, l'opérateur ternaire ? Vrai: False est utilisé pour déterminer si la condition du numéro> 5 est vraie. S'il est vrai, il reviendra vrai , sinon il reviendra faux . Bien que retourner $ numéro> 5; Peut également réaliser le même effet, grâce à l'opérateur ternaire, nous pouvons garder le code concis lorsque des jugements plus complexes sont nécessaires.
Supposons que nous devons filtrer un tableau contenant des URL et seules les URL commençant par http://m66.net sont conservées. Dans ce cas, nous pouvons utiliser les opérateurs ternaires pour simplifier la logique de jugement.
<?php
$urls = [
'http://m66.net/page1',
'http://example.com/page2',
'http://m66.net/page3',
'http://anotherdomain.com/page4',
];
$filteredUrls = array_filter($urls, function($url) {
return strpos($url, 'http://m66.net') === 0 ? true : false; // Conserver uniquement m66.net Le début URL
});
print_r($filteredUrls);
?>
Le résultat de la sortie est:
Array
(
[0] => http://m66.net/page1
[2] => http://m66.net/page3
)
Dans cet exemple, StrPos ($ url, 'http://m66.net') === 0 est utilisé pour déterminer si l'URL commence par http://m66.net . L'opérateur ternaire garantit que nous pouvons gérer cette logique concise.
Lorsque vous utilisez Array_Filter () , la lisibilité et la simplicité du code peuvent être améliorées en introduisant les opérateurs ternaires, en particulier lorsque le jugement de condition dans la fonction de rappel est simple, les opérateurs ternaires peuvent nous aider à éviter de longues instructions IF . Dans le même temps, il permet également au code de maintenir une structure concise lors de la création de jugements plus complexes.