이 기사의 예에서는 PHP가 문자열을 기반으로 해당 배열을 생성하는 방법을 설명합니다. 이는 실용적인 기술입니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 방법은 다음과 같습니다.
다음 예를 살펴보겠습니다.
<?php $config = array( 'project|page|index' => 'content', 'project|page|nav' => array( array( 'image' => '1.jpg', 'name' => 'home' ), array( 'image' => '2.jpg', 'name' => 'about' ) ), 'project|page|open' => true ); ?>
$config를 기반으로 다음 배열을 생성합니다.
<?php $result = array( 'project' => array( 'page' => array( 'index' => 'content', 'nav' => array( array( 'image' => '1.jpg', 'name' => 'home' ), array( 'image' => '2.jpg', 'name' => 'about' ) ), 'open' => true ) ) ); ?>
방법: eval을 사용하여 구현:
<?php $config = array( 'project|page|index' => 'content', 'project|page|nav' => array( array( 'image' => '1.jpg', 'name' => 'home' ), array( 'image' => '2.jpg', 'name' => 'about' ) ), 'project|page|open' => true ); $result = array(); foreach($config as $key=>$val){ $tmp = ''; $keys = explode('|', $key); for($i=0,$len=count($keys); $i<$len; $i++){ $tmp .= "['".$keys[$i]."']"; } if(is_array($val)){ eval('$result'.$tmp.'='.var_export($val,true).';'); }elseif(is_string($val)){ eval('$result'.$tmp.'='.$val.';'); }else{ eval('$result'.$tmp.'=$val;'); } } print_r($result); ?>
출력 결과:
배열
(
[프로젝트] => 배열
(
[ 페이지 ] => 배열
(
[색인] => 내용
[nav] => 배열
(
[0] => 배열
(
[이미지] => 1.jpg
[이름] => 집
)
[1] => 배열
(
[이미지] => 2.jpg
[이름] =>
소개
)
)
[열기] => 1
)
)
)
이 기사가 모든 사람이 PHP 프로그래밍을 배우는 데 도움이 되기를 바랍니다.