En PHP, la fonction d'exploitation est une fonction commune qui divise les chaînes en tableaux en fonction des délimiteurs spécifiés. Bien que l'exploit lui-même renvoie un réseau unidimensionnel, grâce à une combinaison intelligente et à une utilisation de nidification, nous pouvons utiliser l'exploit pour convertir les chaînes de format complexes en tableaux multidimensionnels pour répondre aux besoins des structures de données dans les projets réels.
Cet article présentera certaines techniques pratiques pour créer des tableaux multidimensionnels à l'aide de fonctions d'exploitation , et sera accompagné d'exemples spécifiques pour vous aider à les maîtriser et à les appliquer rapidement.
<?php
$str = "apple,banana,orange";
$arr = explode(",", $str);
print_r($arr);
/*
Sortir:
Array
(
[0] => apple
[1] => banana
[2] => orange
)
*/
?>
Ici, l'exploit divise la chaîne en un tableau unidimensionnel par des virgules.
Supposons que nous ayons une chaîne qui décrit plusieurs ensembles de données, et chaque ensemble de données a plusieurs champs, séparés par différents délimiteurs:
"Zhang San|18|mâle,Li si|20|femelle,Wang wu|22|mâle"
Cette chaîne représente 3 personnes, chacune avec 3 champs (nom | Age | Sexe), séparés par des virgules.
Utilisez l'exploit pour le démonter en deux couches:
<?php
$data = "Zhang San|18|mâle,Li si|20|femelle,Wang wu|22|mâle";
// Première séparation par virgule,Obtenez la chaîne de tout le monde
$people = explode(",", $data);
$result = [];
foreach ($people as $person) {
// Puis divisez les attributs de chaque personne par les lignes verticales
$result[] = explode("|", $person);
}
print_r($result);
/*
Sortir:
Array
(
[0] => Array
(
[0] => Zhang San
[1] => 18
[2] => mâle
)
[1] => Array
(
[0] => Li si
[1] => 20
[2] => femelle
)
[2] => Array
(
[0] => Wang wu
[1] => 22
[2] => mâle
)
)
*/
?>
De cette façon, nous utilisons Explore pour convertir la chaîne en un tableau bidimensionnel.
Si votre structure de chaîne est plus complexe et a plus de niveaux de champ, vous pouvez encapsuler une fonction récursive et diviser la couche par couche en utilisant plusieurs séparateurs.
Par exemple, String:
"Sujet1:Chinois,mathématiques;Sujet2:Anglais,physique"
En supposant ; groupement , : paires de valeurs de clé moléculaire ,, tableau de fraction:
<?php
function multiExplode($delimiters, $string) {
$ready = str_replace($delimiters, $delimiters[0], $string);
$parts = explode($delimiters[0], $ready);
if (count($delimiters) == 1) {
return $parts;
}
array_shift($delimiters);
foreach ($parts as $key => $part) {
$parts[$key] = multiExplode($delimiters, $part);
}
return $parts;
}
$str = "Sujet1:Chinois,mathématiques;Sujet2:Anglais,physique";
$result = multiExplode([';', ':', ','], $str);
print_r($result);
/*
Sortir:
Array
(
[0] => Array
(
[0] => Sujet1
[1] => Array
(
[0] => Chinois
[1] => mathématiques
)
)
[1] => Array
(
[0] => Sujet2
[1] => Array
(
[0] => Anglais
[1] => physique
)
)
)
*/
?>
Cette fonction convertit de manière flexible les chaînes de tous les délimiteurs hiérarchiques en tableaux multidimensionnels grâce à une division récursive.
Lorsque vous analysez des tableaux multidimensionnels, si vous connaissez le nombre d'éléments que vous divisez, vous pouvez rapidement attribuer des variables à l'aide de la syntaxe de la liste :
<?php
$str = "Tom|25|USA";
list($name, $age, $country) = explode("|", $str);
echo "Nom:$name,âge:$age,nation:$country";
/*
Sortir:
Nom:Tom,âge:25,nation:USA
*/
?>
Cette méthode d'écriture est simple et claire, adaptée à l'analyse des données unique en format fixe.
L'explosion est également très utile lors du traitement des paramètres d'URL, tels que l'analyse des chaînes de requête:
<?php
$url = "https://gitbox.net/path/index.php?name=Tom&age=25&country=USA";
$query = parse_url($url, PHP_URL_QUERY); // Obtenez la chaîne de requête
$params = explode("&", $query);
$result = [];
foreach ($params as $param) {
list($key, $value) = explode("=", $param);
$result[$key] = $value;
}
print_r($result);
/*
Sortir:
Array
(
[name] => Tom
[age] => 25
[country] => USA
)
*/
?>
Ici, utilisez l'exploit pour diviser la chaîne de requête en un tableau de paire de valeurs de clé.
Explode renvoie un tableau unidimensionnel, mais par nichage, il est facile de créer des tableaux multidimensionnels.
La combinaison de boucles et de récursions permet une analyse flexible des chaînes dans des formats complexes.
Il est associé à la liste pour faciliter l'extraction rapide des données.
L'explosion est très efficace lors de l'analyse des URL ou d'autres chaînes dans des formats similaires.
Après avoir maîtrisé ces techniques, vous pouvez utiliser Explore pour traiter les données de chaîne dans divers projets réels et créer facilement des structures de tableau multidimensionnelles.
Étiquettes associées:
explode