【问题标题】:PHP Selecting unknown depth of arrayPHP选择未知深度的数组
【发布时间】:2021-01-08 16:22:23
【问题描述】:

我会尽量让这件事变得简单。 点符号字符串被发送到函数,例如,这将是字符串。

'user.id' 

然后我把点爆炸给我一个名字数组

$dotNotation = explode(".", $variable);

现在我需要使用这些名称从另一个变量中进行选择,就像这样

$row[$dotNotation[0]][$dotNotation[1]]

原来是这样的

$row['user']['id']

但是,我需要它是动态的,它可以是任意深度,即可以有任意数量的点。我完全不知道如何实现这一目标。

【问题讨论】:

标签: php arrays


【解决方案1】:

您可以遍历所有键并检索值:

function getDotNotationValue($dotNotation, $row) {
   $dotNotationArray = explode(".", $dotNotation);
   foreach($dotNotationArray as $key) {
      $row = $row[$key];
   }
   return $row;
}

$row = ["test1" => ["test2" => ["test3" => "value"]]];
$string = "test1.test2.test3";
echo getDotNotationValue($string, $row);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-03
    • 2015-06-30
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多