array_filter

1
array_filter($tableau, function($elt){...})

Cette fonction retourne un nouveau tableau contenant les éléments pour lesquels la fonction a retourné vrai.

La valeur retournée par la fonction est true ou false.

$elt : représente un élément du tableau à chaque tour de boucle

ExempleGarde les valeurs multiples de 3.

1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = array_filter(
5
    $listeNombres,
6
    function ($nombre) {
7
        return $nombre % 3 == 0;
8
    }
9
);
10
11
var_dump($tab); // [12, 9, 3, 15]

Équivalent avec fonction fléchée

1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = array_filter($listeNombres, fn ($nombre) => $nombre % 3 == 0);
5
6
var_dump($tab); // [12, 9, 3, 15]

Équivalent avec foreach

1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = [];
5
foreach ($listeNombres as $nombre) {
6
    if($nombre % 3 == 0) $tab[] = $nombre;
7
}
8
9
var_dump($tab);

Équivalent avec for

1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = [];
5
for ($i = 0; $i < count($listeNombres); $i++) {
6
    if($listeNombres[$i] % 3 == 0) $tab[] = $listeNombres[$i];
7
}
8
9
var_dump($tab);

ExempleGarde les nombres entre 6 et 13

1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = array_filter(
5
    $listeNombres,
6
    function ($nombre) {
7
        return $nombre > 6 && $nombre < 13;
8
    }
9
);
10
11
var_dump($tab); // [12, 7, 9, 8]

Équivalent avec fonction fléchée

1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = array_filter($listeNombres, fn ($nombre) => $nombre > 6 && $nombre < 13);
5
6
var_dump($tab); // [12, 7, 9, 8]

Équivalent avec foreach

1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = [];
5
foreach ($listeNombres as $nombre) {
6
    if($nombre > 6 && $nombre < 13) $tab[] = $nombre;
7
}
8
9
var_dump($tab);

ExempleGarde les mots de moins de 6 caractères

1
<?php
2
$listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
3
4
$tab = array_filter(
5
    $listeMots,
6
    function ($mot) {
7
        return mb_strlen($mot) < 6;
8
    }
9
);
10
11
var_dump($tab); // ['hello', 'matin', 'soir', 'après']

Équivalent avec fonction fléchée

1
<?php
2
$listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
3
4
$tab = array_filter($listeMots, fn ($mot) => mb_strlen($mot) < 6);
5
6
var_dump($tab); // ['hello', 'matin', 'soir', 'après']

Équivalent avec foreach

1
<?php
2
$listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
3
4
$tab = [];
5
foreach ($listeMots as $mot) {
6
    if(mb_strlen($mot) <= 6) $tab[] = $mot;
7
}
8
9
var_dump($tab);

Équivalent avec for

1
<?php
2
$listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
3
4
$tab = [];
5
for ($i = 0; $i < count($listeMots); $i++) {
6
    if(mb_strlen($listeMots[$i]) <= 6) $tab1[] = $listeMots[$i];
7
}
8
9
var_dump($tab);

ExempleGarde les majeurs d'une liste de tableaux associatifs

1
<?php
2
$listePersonnes = [
3
    ['id' => 8, 'nom' => 'Aule', 'prenom' => 'Lucie', 'age' => 45],
4
    ['id' => 9, 'nom' => 'Ball', 'prenom' => 'Annie', 'age' => 24],
5
    ['id' => 10, 'nom' => 'Bon', 'prenom' => 'Jean', 'age' => 65],
6
    ['id' => 11, 'nom' => 'Braisile', 'prenom' => 'France', 'age' => 13]
7
];
8
9
$tab = array_filter(
10
    $listePersonnes,
11
    function ($personne) {
12
        return $personne['age'] > 18;
13
    }
14
);
15
16
var_dump($tab);

Équivalent avec fonction fléchée

1
<?php
2
$listePersonnes = [
3
    ['id' => 8, 'nom' => 'Aule', 'prenom' => 'Lucie', 'age' => 45],
4
    ['id' => 9, 'nom' => 'Ball', 'prenom' => 'Annie', 'age' => 24],
5
    ['id' => 10, 'nom' => 'Bon', 'prenom' => 'Jean', 'age' => 65],
6
    ['id' => 11, 'nom' => 'Braisile', 'prenom' => 'France', 'age' => 13]
7
];
8
9
$tab = array_filter($listePersonnes, fn ($personne) => $personne['age'] > 18);
10
11
var_dump($tab);

Équivalent avec foreach

1
<?php
2
$listePersonnes = [
3
    ['id' => 8, 'nom' => 'Aule', 'prenom' => 'Lucie', 'age' => 45],
4
    ['id' => 9, 'nom' => 'Ball', 'prenom' => 'Annie', 'age' => 24],
5
    ['id' => 10, 'nom' => 'Bon', 'prenom' => 'Jean', 'age' => 65],
6
    ['id' => 11, 'nom' => 'Braisile', 'prenom' => 'France', 'age' => 13]
7
];
8
9
$tab = [];
10
foreach ($listePersonnes as $personne) {
11
    if( $personne['age'] > 18) $tab[] = $personne;
12
}
13
14
var_dump($tab);

Équivalent avec for

1
<?php
2
$listePersonnes = [
3
    ['id' => 8, 'nom' => 'Aule', 'prenom' => 'Lucie', 'age' => 45],
4
    ['id' => 9, 'nom' => 'Ball', 'prenom' => 'Annie', 'age' => 24],
5
    ['id' => 10, 'nom' => 'Bon', 'prenom' => 'Jean', 'age' => 65],
6
    ['id' => 11, 'nom' => 'Braisile', 'prenom' => 'France', 'age' => 13]
7
];
8
9
$tab = [];
10
for ($i = 0; $i < count($listePersonnes ); $i++) {
11
    if( $listePersonnes[$i]['age'] > 18) $tab[] = $listePersonnes[$i];
12
}
13
14
var_dump($tab);