PHP dynamically get the data from a sub array -
i have question. have script renames array keys.
now want in sub level array if needed.
current situation
the current code have works :
///######## if original key has been set if(isset($this->prepareddata[$key]) === true){ ///######## add data prepared data variable $this->prepareddata[$value] = $this->prepareddata[$key]; ///######## unset original key unset($this->prepareddata[$key]); } but want code able set following dynamically:
///######## if original key has been set if(isset($this->prepareddata[$subkey1][$key]) === true){ ///######## add data prepared data variable $this->prepareddata[$subkey1][$value] =$this->prepareddata[$subkey1][$key]; ///######## unset original key unset($this->prepareddata[$subkey1][$key]); } question
but want dynamically:
so be:
$this->prepareddata[$subkey1][$key] but also:
$this->prepareddata[$subkey1][$subkey2][$key] but also:
$this->prepareddata[$subkey1][$subkey2][$subkey3][$key] and @ hand of array
desired situation
so set:
methodname('wheels', array('car', 'mustang')); that mean :
$this->prepareddata['car']['mustang']['wheels'] the question have.. is... how this? because want able call:
methodname('wheels'); meaning:
$this->prepareddata['wheels'] thank you!!
the solution (by splash58):
function methodname($key, $path = array()) { global $array; $p = &$array; // point array foreach($path $step) // walk trough path needed level $p = &$p[$step]; return $p[$key]; //take value } $array = array( // test array 'wheels'=> 'wheels1', 'car' => array( 'mustang' => array( 'wheels'=> 'wheels2'))); echo methodname('wheels', array('car', 'mustang')) . "\n"; // wheels2 echo methodname('wheels'); // wheels1
move enviroment
function methodname($key, $path = array()) { global $array; $p = &$array; // point array foreach($path $step) // walk trough path needed level $p = &$p[$step]; return $p[$key]; //take value } $array = array( // test array 'wheels'=> 'wheels1', 'car' => array( 'mustang' => array( 'wheels'=> 'wheels2'))); echo methodname('wheels', array('car', 'mustang')) . "\n"; // wheels2 echo methodname('wheels'); // wheels1
Comments
Post a Comment