>백엔드 개발 >PHP 튜토리얼 >PHP에서 문자열 경로를 사용하여 중첩 배열 값을 안전하게 설정하는 방법은 무엇입니까?

PHP에서 문자열 경로를 사용하여 중첩 배열 값을 안전하게 설정하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-15 06:40:11770검색

How to Safely Set Nested Array Values Using a String Path in PHP?

문자열 경로를 사용하여 중첩 배열 데이터 설정

이 사용 사례에서 문자열 입력은 중첩 배열 값을 설정하는 것을 목표로 합니다. 예:

"cars.honda.civic = On"

이 문자열의 결과는 다음과 같습니다.

$data'cars'['civic'] = 'On' ;

입력을 토큰화하는 것은 간단하지만:

$token = 폭발("=",$input);
$value = 트림($token[1]);
$path = 트림($token[0]);
$exploded_path = 폭발(". ",$path);

과제와 같은 위험한 기술에 의존하지 않고 어레이를 설정하는 것이 과제입니다. eval.

해결책

해결책에는 참조 연산자(&)를 활용하여 연속적인 기존 배열을 얻는 것이 포함됩니다.

$temp = & $data;
foreach($는 $key로 폭발됨) {

$temp = & $temp[$key];

}
$temp = $value;
unset($temp);

이 방법을 사용하면 각 레벨을 하드 코딩하지 않고도 중첩된 배열을 탐색할 수 있습니다. .

위 내용은 PHP에서 문자열 경로를 사용하여 중첩 배열 값을 안전하게 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.