PHPでは、エクスプロイト関数は、指定された区切り文字に従って文字列を配列に分割する一般的な関数です。 Exploit自体は、巧妙な組み合わせとネストの使用を通じて1次元配列を返しますが、エクスプロイトを使用して複雑な形式の文字列を多次元配列に変換して、実際のプロジェクトのデータ構造のニーズを満たすことができます。
この記事では、 Exploit関数を使用して多次元配列を作成するためのいくつかの実用的な手法を紹介し、特定の例を添付して、それらをすばやく習得して適用するのに役立ちます。
<?php
$str = "apple,banana,orange";
$arr = explode(",", $str);
print_r($arr);
/*
出力:
Array
(
[0] => apple
[1] => banana
[2] => orange
)
*/
?>
ここで、エクスプロイトは文字列をコンマによって1次元配列に分割します。
複数のデータセットを記述する文字列があり、データの各セットには異なるデリミターで区切られた複数のフィールドがあるとします。
"チャン・サン|18|男,li si|20|女性,王ウー|22|男"
この文字列は3人を表し、それぞれが3つのフィールド(名前|年齢|性別)を備えており、コンマで区切られています。
エクスプロイトを使用して、2つのレイヤーでそれを分解します。
<?php
$data = "チャン・サン|18|男,li si|20|女性,王ウー|22|男";
// 最初にコンマによる分割,みんなの文字列を取得します
$people = explode(",", $data);
$result = [];
foreach ($people as $person) {
// 次に、各人の属性を垂直線で分割します
$result[] = explode("|", $person);
}
print_r($result);
/*
出力:
Array
(
[0] => Array
(
[0] => チャン・サン
[1] => 18
[2] => 男
)
[1] => Array
(
[0] => li si
[1] => 20
[2] => 女性
)
[2] => Array
(
[0] => 王ウー
[1] => 22
[2] => 男
)
)
*/
?>
このようにして、 Exploreを使用して、文字列を2次元配列に変換します。
文字列構造がより複雑で、より多くのフィールドレベルがある場合は、再帰関数をカプセル化し、複数のセパレータを使用してレイヤーごとに分割することができます。
たとえば、文字列:
"科目1:中国語,数学;科目2:英語,物理"
仮定;グループ化、 :分子キー価値ペア、、分数配列:
<?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 = "科目1:中国語,数学;科目2:英語,物理";
$result = multiExplode([';', ':', ','], $str);
print_r($result);
/*
出力:
Array
(
[0] => Array
(
[0] => 科目1
[1] => Array
(
[0] => 中国語
[1] => 数学
)
)
[1] => Array
(
[0] => 科目2
[1] => Array
(
[0] => 英語
[1] => 物理
)
)
)
*/
?>
この関数は、任意の階層デリミターの文字列を再帰的分割を介して多次元アレイに柔軟に変換します。
多次元配列を解析する場合、分割する要素の数がわかっている場合は、リスト構文を使用して変数をすばやく割り当てることができます。
<?php
$str = "Tom|25|USA";
list($name, $age, $country) = explode("|", $str);
echo "名前:$name,年:$age,国家:$country";
/*
出力:
名前:Tom,年:25,国家:USA
*/
?>
この書き込み方法は、シンプルで明確で、固定形式の単一データ分析に適しています。
爆発は、クエリ文字列の解析などのURLパラメーターを処理する場合にも非常に便利です。
<?php
$url = "https://gitbox.net/path/index.php?name=Tom&age=25&country=USA";
$query = parse_url($url, PHP_URL_QUERY); // クエリ文字列を取得します
$params = explode("&", $query);
$result = [];
foreach ($params as $param) {
list($key, $value) = explode("=", $param);
$result[$key] = $value;
}
print_r($result);
/*
出力:
Array
(
[name] => Tom
[age] => 25
[country] => USA
)
*/
?>
ここで、エクスプロイトを使用して、クエリ文字列をキー値ペア配列に分割します。
Explodeは1次元配列を返しますが、ネストすることにより、多次元配列を作成するのは簡単です。
ループと再帰を組み合わせることで、複雑な形式の文字列の柔軟な解析が可能になります。
迅速なデータ抽出を容易にするために、リストとペアになっています。
URLまたは他の文字列を同様の形式で解析すると、爆発は非常に効率的です。
これらの手法を習得した後、 Exploreを使用してさまざまな実際のプロジェクトで文字列データを処理し、多次元配列構造を簡単に構築できます。
関連タグ:
explode