我想保存一系列密钥,并像使用索引一样将其用于返回 原始数组中的对应值。这是一个例子来说明。
$myArray = array("foo" => array("bar" => "Hello"));
手动方式到达"你好"会是
$helloString = $myArray["foo"]["bar"];
但是我希望有一种灵活的方法来为具有N个键的数组执行此操作
之类的东西$keys = array("foo","bar");
$helloString = $myArray[$keys]; //doesn't work but hopefully shows my intent
有没有办法在不使用eval()的情况下执行此操作?
答案 0 :(得分:1)
我想你可以这样做:
<?php
$myArray = array("foo" => array("bar" => "Hello"));
$keys = array("foo","bar");
$item = $myArray;
foreach($keys as $k) {
$item = $item[$k];
}
echo $item; //Hello
?>
或者将其粘贴在一个函数中:
function getValue($array, $keys) {
foreach($keys as $k)
$array = $array[$k];
return $array;
}
答案 1 :(得分:0)
不要理解,但尝试:
$keys = array("foo","bar");
$helloString = $myArray[$keys[0]][$keys[1]];
答案 2 :(得分:0)
你甚至可以尝试这个
$myArray = array("foo" => array("bar" => "Hello"));
$keys = array("foo","bar");
function getval($myArray, $keys){
$temp = $myArray[$keys[0]];
if(!is_array($temp)){
return $temp;
}
else
{
array_splice($keys,0,1);
return getval($temp, $keys);
}
}
//Here you go
echo getval($myArray, $keys);