当前位置: 首页 > 面试题库 >

如何使用字符串作为数组索引路径来检索值?

谢鸿飞
2023-03-14
问题内容

假设我有一个类似的数组:

Array
(
    [0] => Array
        (
            [Data] => Array
                (
                    [id] => 1
                    [title] => Manager
                    [name] => John Smith
                )
         )
    [1] => Array
        (
            [Data] => Array
                 (
                     [id] => 1
                     [title] => Clerk
                     [name] =>
                         (
                             [first] => Jane
                             [last] => Smith
                         )
                 )

        )

)

我希望能够构建一个可以传递字符串的函数,该函数将用作数组索引路径并返回适当的数组值,而无需使用eval()。那可能吗?

function($indexPath, $arrayToAccess)
{
    // $indexPath would be something like [0]['Data']['name'] which would return 
    // "Manager" or it could be [1]['Data']['name']['first'] which would return 
    // "Jane" but the amount of array indexes that will be in the index path can 
    // change, so there might be 3 like the first example, or 4 like the second.

    return $arrayToAccess[$indexPath] // <- obviously won't work
}

问题答案:

您可以使用数组作为路径(从左到右),然后使用递归函数:

$indexes = {0, 'Data', 'name'};

function get_value($indexes, $arrayToAccess)
{
   if(count($indexes) > 1) 
    return get_value(array_slice($indexes, 1), $arrayToAccess[$indexes[0]]);
   else
    return $arrayToAccess[$indexes[0]];
}


 类似资料:
  • 我正在做一个关于图灵机的项目,我有一个关于如何替换字符串的某个索引中的字符的问题 这是我的代码 runbutton.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent ActE){

  • 问题内容: 是否可以在Python数组中使用字符串作为索引? 例如: 问题答案: 您想要的称为关联数组。在python中,这些被称为字典。 词典有时在其他语言中被称为“关联记忆”或“关联数组”。与用数字范围索引的序列不同, 字典是用键索引的,键可以是任何不可变的类型 ;字符串和数字始终可以是键。 创建上述字典的另一种方法: 访问值: 获取密钥(在Python v2中): 在Python 3中,您将

  • 问题内容: 如何获得“ E”输出而不是69? Golang是否具有将字符转换为字节,反之亦然的功能? 问题答案: 解释的字符串文字是使用单个字符的UTF-8编码(可能是多字节)在双引号“”之间的字符序列。在UTF-8中,ASCII字符是单字节,对应于前128个Unicode字符。字符串的行为就像字节片。符文是标识Unicode代码点的整数值。因此, 输出: 读: 进入转换的编程语言规范部分。 Go

  • 如何得到一个“E”的输出而不是69? Golang是否有将字符转换为字节的功能,反之亦然?

  • 问题内容: 我正在使用以下语法从Javascript向数据库发送JSON字符串: 在我将这些数据简单地放入数据库而不用php对其进行解码之前,它在恢复后再次使用时就没有问题。 但是,现在我需要对字符串中的数据进行一些更改,因此我在PHP中对其进行了解码,这将导致如下所示的数组: 我的问题是,当我将此数组编码回JSON时,字符串的格式如下: 我需要编码的字符串与我的javascript创建的字符串相

  • 我正在开发一个具有这种结构的rest Web服务 http://localhost:8080/context/login/{用户}/{密码} 此请求的示例为 http://localhost:8080/context/login/admin/admin 我在applicationContext中配置了一个AbstractPhaseInterceptor。我的spring应用程序的xml。拦截器类是