$$ array [0]返回数组名称字母而不是数组值

时间:2017-04-08 16:32:37

标签: php arrays

我想使用动态创建的数组的第一个值,但我得到了数组名称的第一个字母。

$log = "dets_".$id;
$$log = array();
while ($c = mysql_fetch_assoc($cuenta)) { array_push($$log,$c['id'].'::'.$c['fecha']); }

当我打印$$ log时,我得到这样的东西:

Array ( [0] => 124::2017-04-07 [1] => 119::2017-04-07 [2] => 118::2017-04-05 ) 

但是当我尝试访问第一个键时:

echo $$log[0];

我得到" $ d"而不是" 124 :: 2017-04-07"。我也尝试了$ log [0]并获得了#34; d"。 谢谢。

1 个答案:

答案 0 :(得分:0)

您可以通过一些棘手的表达来访问第一个元素:

var_dump (${${'log'}}[0]);

http://php.net/manual/en/language.variables.variable.php

PHP Manual

获取的一些解释
  

为了将变量变量与数组一起使用,您必须解析一个   歧义问题。也就是说,如果您编写$$a[1],则解析器需要   了解您是否打算将$a[1]用作变量,或者是否需要$$a   作为变量,然后是该变量的[1]索引。语法   解决这种歧义的方法是:${$a[1]}用于第一种情况和   ${$a}[1]为第二个。