PHP에서, 익스플로잇 함수는 지정된 구분 기저에 따라 줄을 배열로 분할하는 일반적인 함수이다. 익스플로잇 자체는 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 개의 필드 (이름 | 연령 | 성별), 쉼표로 분리됩니다.
Exploit을 사용하여 두 층으로 분해하십시오.
<?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] => 남성
)
)
*/
?>
이러한 방식으로 탐색을 사용하여 문자열을 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
)
*/
?>
여기에서 exploit을 사용하여 쿼리 문자열을 키 값 쌍 어레이로 분할하십시오.
폭발은 1 차원 배열을 반환하지만 둥지를 사용하면 다차원 배열을 쉽게 만들 수 있습니다.
루프와 재귀를 결합하면 복잡한 형식으로 문자열을 유연하게 구문 분석 할 수 있습니다.
빠른 데이터 추출을 용이하게하기 위해 목록 과 쌍을 이룹니다.
URL 또는 다른 문자열을 비슷한 형식으로 구문 분석 할 때 폭발이 매우 효율적입니다.
이러한 기술을 마스터 한 후에 는 탐색을 사용하여 다양한 실제 프로젝트에서 문자열 데이터를 처리하고 다차원 배열 구조를 쉽게 구축 할 수 있습니다.
관련 태그:
explode