【问题标题】:PHP-> variable vars - arrays columnsPHP-> 变量 vars - 数组列
【发布时间】:2019-06-11 09:26:39
【问题描述】:

我有一个函数可以接收无限数量的参数。 (我为此使用 func_get_args)

例如:function generate($one, $two, $three, ...)

每个参数代表另一个数组中的一列(我们称之为$array)。

我想在$array[$one][$two][$three]上接收另一个数组的值

也就是说"[]"的数量是无限的

我已尝试为此在 var 中生成一个 var。

<?php

  $ron = array("sir" => "yes");
  $name = 'ron["sir"]';
  echo var_dump(${$name});
?>

我的结果:

注意:未定义变量:ron["sir"] in C:\Users\ronr\Desktop\xampp\htdocs\lol.php 在第 5 行 NULL

【问题讨论】:

标签: php arrays


【解决方案1】:

如果你想使用 args 作为数组值的路径,你可以试试这个:

$result = $array;
$args = func_get_args();

foreach($args as $arg) {
  $result = $result[$arg];
}

var_dump($result);

【讨论】:

  • 我想过类似的事情,但不认为这是正确的方法。非常感谢!
【解决方案2】:

其实,错误是正确的,你定义了一个名为ron["sir"]的变量,类似这样:

${'ron["sir"]'} = 'foobar';
echo ${'ron["sir"]'};

。要在$ron 数组中显示sir 的值,应该是:

$ron = array("sir" => "yes");
$name = 'ron';
var_dump(${$name}["sir"]);

【讨论】:

  • 您好,感谢您的帮助。请阅读我的其余问题。再次感谢
  • ...阅读我的问题的其余部分... 你到底是什么意思? @RonRofe
  • 如果我们在函数中有 4 个参数 - "hello", "its", "me", "here" ----- 所以我想在 $array 上接收数组的值[“你好”][“它”][“我”][“这里”]
  • 我想真正的问题是“我可以使用插值来访问数组吗”
  • @RonRofe 如果索引不存在怎么办?那会发生什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
  • 2014-03-16
相关资源
最近更新 更多