PHP-如何在数组中存储数组键,并在以后使用它访问值
我想保存一个键数组,并将其用作索引以返回到 原始数组中的对应值。这里有一个例子来说明PHP-如何在数组中存储数组键,并在以后使用它访问值,php,Php,我想保存一个键数组,并将其用作索引以返回到 原始数组中的对应值。这里有一个例子来说明 $myArray = array("foo" => array("bar" => "Hello")); 手动到达“Hello”的方式是 但是我想要一种灵活的方法来为具有N个键的数组执行此操作 差不多 $keys = array("foo","bar"); $helloString = $myArray[$keys]; //doesn't work but hopefully shows my i
$myArray = array("foo" => array("bar" => "Hello"));
手动到达“Hello”的方式是
但是我想要一种灵活的方法来为具有N个键的数组执行此操作
差不多
$keys = array("foo","bar");
$helloString = $myArray[$keys]; //doesn't work but hopefully shows my intent
有没有不使用eval()的方法可以做到这一点?我不太明白,但请尝试:
$keys = array("foo","bar");
$helloString = $myArray[$keys[0]][$keys[1]];
我想你可以这样做:
<?php
$myArray = array("foo" => array("bar" => "Hello"));
$keys = array("foo","bar");
$item = $myArray;
foreach($keys as $k) {
$item = $item[$k];
}
echo $item; //Hello
?>
你甚至可以试试这个
$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);
没有内置的方法来做这些事情。您必须自己编写一个函数,该函数接受一组键并获取值。不用担心,很高兴我能提供帮助:)
function getValue($array, $keys) {
foreach($keys as $k)
$array = $array[$k];
return $array;
}
$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);