Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-如何在数组中存储数组键,并在以后使用它访问值_Php - Fatal编程技术网

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);