Quand est apparue cette méthode ?
depuis Laravel v5.1
Description
Tu as besoin de vérifier qu’une donnée est bien présente dans ta collection ? Grâce à la méthode contains tu vas pouvoir effectuer cette vérification.
Exemples
Il y a 5 exemples pour cette collection
Exemple #1 : Vérifions que le language 'c' est présent dans notre collection
Collection utilisée
Cliquez sur chaque collection pour voir son code, ou cliquez sur le bouton 'Voir toutes les
collections' pour toutes les ouvrir en une fois.
// define languages collection
$this->languages = collect([
'php',
'python',
'javascript',
'go',
'c#',
'java',
'cobol',
'basic'
]);
Illuminate\Support\Collection {#413 ▼
#items: array:8 [▼
0 => "php"
1 => "python"
2 => "javascript"
3 => "go"
4 => "c#"
5 => "java"
6 => "cobol"
7 => "basic"
]
}
Code source
$languages = collect([
"php",
"python",
"javascript",
"go",
"c#",
"java",
"cobol",
"basic"
]);
$result = $languages->contains('c');
var_dump($result);
Résultat
bool(false)
Exemple #2 : Vérifions que le language 'C#' est présent dans notre collection
Collection utilisée
Cliquez sur chaque collection pour voir son code, ou cliquez sur le bouton 'Voir toutes les
collections' pour toutes les ouvrir en une fois.
// define languages collection
$this->languages = collect([
'php',
'python',
'javascript',
'go',
'c#',
'java',
'cobol',
'basic'
]);
Illuminate\Support\Collection {#413 ▼
#items: array:8 [▼
0 => "php"
1 => "python"
2 => "javascript"
3 => "go"
4 => "c#"
5 => "java"
6 => "cobol"
7 => "basic"
]
}
Code source
$languages = collect([
"php",
"python",
"javascript",
"go",
"c#",
"java",
"cobol",
"basic"
]);
$result = $languages->contains('C#');
var_dump($result);
Résultat
bool(false)
Exemple #3 : Vérifions que le language 'c#' (en minuscule) est présent dans notre collection
Collection utilisée
Cliquez sur chaque collection pour voir son code, ou cliquez sur le bouton 'Voir toutes les
collections' pour toutes les ouvrir en une fois.
// define languages collection
$this->languages = collect([
'php',
'python',
'javascript',
'go',
'c#',
'java',
'cobol',
'basic'
]);
Illuminate\Support\Collection {#413 ▼
#items: array:8 [▼
0 => "php"
1 => "python"
2 => "javascript"
3 => "go"
4 => "c#"
5 => "java"
6 => "cobol"
7 => "basic"
]
}
Code source
$languages = collect([
"php",
"python",
"javascript",
"go",
"c#",
"java",
"cobol",
"basic"
]);
$result = $languages->contains('c#');
var_dump($result);
Résultat
bool(true)
Exemple #4 : Recherche par clé dans la collection 'complexe'
Collection utilisée
Cliquez sur chaque collection pour voir son code, ou cliquez sur le bouton 'Voir toutes les
collections' pour toutes les ouvrir en une fois.
// define complexe collection
$this->complexe = collect(
[
['name' => 'php',
'python',
'javascript',
'go',
'c#',
'java',
'cobol',
'basic'],
[-2, 200.3, -7.8, 400.1],
['ref' => 'XZ42', 'price' => 200.7, 'tags' => ['red', 'new']],
'totalprice' => 422
]
);
Illuminate\Support\Collection {#423 ▼
#items: array:4 [▼
0 => array:8 [▼
"name" => "php"
0 => "python"
1 => "javascript"
2 => "go"
3 => "c#"
4 => "java"
5 => "cobol"
6 => "basic"
]
1 => array:4 [▼
0 => -2
1 => 200.3
2 => -7.8
3 => 400.1
]
2 => array:3 [▼
"ref" => "XZ42"
"price" => 200.7
"tags" => array:2 [▼
0 => "red"
1 => "new"
]
]
"totalprice" => 422
]
}
Code source
$complexe = collect(
[
["name" => "php",
"python",
"javascript",
"go",
"c#",
"java",
"cobol",
"basic"],
[-2, 200.3, -7.8, 400.1],
["ref" => "XZ42", "price" => 200.7, "tags" => ["red", "new"]],
"totalprice" => 422
]
);
// recherche de la clé valeur 'ref', 'XZ42'
echo "<h1>Key search 'ref','XZ42'</h1>" . PHP_EOL;
$result = $complexe->contains('ref', 'XZ42');
var_dump($result);
// recherche de la clé valeur 'ref', 'XZ43'
echo "<h1>Key search 'ref','XZ43'</h1>" . PHP_EOL;
$result = $complexe->contains('ref', 'XZ43');
var_dump($result);
// recherche uniquement de la clé valeur 'ref'
echo "<h1>Key search 'ref',''</h1>" . PHP_EOL;
$result = $complexe->contains('ref', '');
var_dump($result);
Résultat
Key search 'ref','XZ42'
bool(true)
Key search 'ref','XZ43'
bool(false)
Key search 'ref',''
bool(true)
Exemple #5 : La méthode contains avec un callback
Collection utilisée
Cliquez sur chaque collection pour voir son code, ou cliquez sur le bouton 'Voir toutes les
collections' pour toutes les ouvrir en une fois.
// define collection numbers
$numbers = collect([-2, 200.3, -7.8, 400.1]);
Illuminate\Support\Collection {#416 ▼
#items: array:4 [▼
0 => -2
1 => 200.3
2 => -7.8
3 => 400.1
]
}
Code source
$numbers = collect([-2, 200.3, -7.8, 400.1]);
// IMPORTANT : la fonction de callback ne semble fonctionner que sur une collection plate n’en imbriquant pas d’autres.
$result = $numbers->contains(function ($value, $key){
return ($value < -8 or $value > 500);
});
var_dump ($result);
Résultat
bool(false)