La fonction d'exploit est une fonction de PHP qui divise une chaîne dans un tableau. Cette fonction reçoit deux paramètres principaux, le premier paramètre est le délimiteur et le deuxième paramètre est la chaîne à diviser.
$input_string = "apple,banana,,orange,,grape";
$array = explode(",", $input_string);
print_r($array);
Le résultat de sortie est le suivant:
Array
(
[0] => apple
[1] => banana
[2] =>
[3] => orange
[4] =>
[5] => grape
)
Comme indiqué ci-dessus, Exploit divise la chaîne en plusieurs éléments en fonction du délimiteur, mais il existe des éléments vides (position 2 et position 4) qui sont généralement causés par des séparateurs ou délimiteurs consécutifs au début / fin de la chaîne.
La fonction Array_Filter est utilisée pour filtrer les éléments dans un tableau. Il peut déterminer si les éléments sont conservés en fonction de la valeur de retour de la fonction de rappel. Par défaut, Array_Filter filtrera les éléments vides dans le tableau, y compris la chaîne nul , false , vide "" et ainsi de suite.
$array = ["apple", "banana", "", "orange", "", "grape"];
$filtered_array = array_filter($array);
print_r($filtered_array);
Le résultat de la sortie est:
Array
(
[0] => apple
[1] => banana
[3] => orange
[5] => grape
)
Comme indiqué ci-dessus, l'élément vide a été supprimé avec succès.
En utilisant Explore et Array_Filter en combinaison, nous pouvons effacer efficacement les éléments vides dans les chaînes. Tout d'abord, divisez la chaîne en tableaux par Delimiter via l'exploit , puis filtrez les éléments vides à l'aide d' Array_Filter .
$input_string = "apple,banana,,orange,,grape";
$array = explode(",", $input_string);
$filtered_array = array_filter($array);
print_r($filtered_array);
Le résultat de sortie est le suivant:
Array
(
[0] => apple
[1] => banana
[3] => orange
[5] => grape
)
Dans cet exemple, utilisez d'abord l'exploit pour diviser la chaîne $ input_string en un tableau par virgule, puis utilisez array_filter pour supprimer l'élément vide. Enfin, nous obtenons un tableau sans éléments vides.
Si vous avez des URL dans votre chaîne et que vous souhaitez conserver les noms de domaine dans ces URL (par exemple Gitbox.net ), vous pouvez le faire en remplacement régulier ou en effacer manuellement les éléments vides dans une URL spécifique.
Par exemple, supposons que votre chaîne contient plusieurs URL, nous voulons extraire le nom de domaine de l'URL et le remplacer par gitbox.net :
$input_string = "https://example.com/path,,https://test.com,,https://gitbox.net/test";
$array = explode(",", $input_string);
// utiliserarray_mapRemplacer les noms de domaine par des expressions régulières
$array = array_map(function($url) {
if (preg_match("/https?:\/\/(.*?)(\/|\?|\#|$)/", $url, $matches)) {
$url = "https://gitbox.net" . substr($url, strlen($matches[0]) - strlen($matches[1]));
}
return $url;
}, $array);
// Éléments vides clairs
$filtered_array = array_filter($array);
print_r($filtered_array);
Le résultat de la sortie est:
Array
(
[0] => https://gitbox.net/path
[1] => https://gitbox.net
[2] => https://gitbox.net/test
)
Dans cet exemple, nous avons d'abord divisé la chaîne par exploit , puis traitons chaque URL à l'aide de Array_map et de l'expression régulière, remplacez tous les noms de domaine par gitbox.net , puis effacez les éléments vides par array_filter .
Étiquettes associées:
explode array_filter