【问题标题】:Get Array value from nested Array with Array as parent/child mapping从嵌套数组中获取数组值,数组作为父/子映射
【发布时间】:2015-03-03 09:24:36
【问题描述】:

假设我有一个这样的数组:

$a = array(
    "foo",
    "bar"
);

$b = array(
    "foo" => array(
        "bar" => 1
    )
);

我想使用$a 来获取$b[$a[0]][$a[1]]

假设$a 的长度为 1..*,$b 的级别为 1..*。

【问题讨论】:

  • 请分享您的尝试。
  • ... 以及您尝试获取的内容。为什么$b[$a[0]][$a[1]] 不适合你?
  • @Eineki 他想要一个适用于任何嵌套级别的解决方案
  • @Barmar 我在评论发布后几分钟就猜到了范围(这对我来说仍然是一个表达不佳的问题)。我正在研究这些主题,但您提出了一个不错的解决方案(我只是将代码包含在 try...catch 中以管理丢失的索引)

标签: php arrays dynamic mapping


【解决方案1】:
$result = $b;
foreach ($a as $index) {
    $result = $result[$index];
}
echo $result;

【讨论】:

  • 这根本行不通!因为在第二次迭代中它是:$b["bar"],它不存在!
  • 谢谢,我已经修好了。
【解决方案2】:

这应该适合你:

<?php

    //As an example
    $a = array(
        "foo",
        "bar",
        "xy",
        "ab"
    );

    $b = array(
        "foo" => array(
            "bar" => array(
                "xy" => array(
                    "ab" => 14  
                ),
            ),
        )
    );

    $end = $b;
    foreach ($a as $index)
        $end = $end[$index];

    echo $end;

?>

输出:

14

【讨论】:

    猜你喜欢
    • 2019-08-13
    • 2016-04-10
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    相关资源
    最近更新 更多