php:如何使用变量-变量按索引获取数组中的元素

php: How to get element in array by index using variable-variables

如果我有:

<?php
$params=[
    [
        'string'
    ]
];
//params get from $this->params()->fromPost();
$abc='params[0][0]';//$abc dynamiccly

我无法访问$params[0]

如何获取string元素?

我尝试使用

echo $$abc;

但是

Notice: Undefined variable params[0][]

使用以下方式访问字符串

$params=[
    'string'
];
$abc='params';

$new = $$abc;
echo $new[0];

如果 $abc 是动态定义的,您必须将其拆分为两个变量:$arrayName$arrayKey,例如:

$params = array('string');
$abc = 'params[0]';
$arrayName = substr($abc,0,strpos($abc,'['));
$arrayIndex = preg_replace('/[^\d\s]/', '',$abc);
echo ${$arrayName}[$arrayIndex]; // returns "string"

为了访问动态变量的值,您可以执行一个循环-

<?php
$params=[
    'string'
];
$abc= 'params';

foreach($$abc as $k=>$v){
    echo $v;
}

?>

如果你想通过索引直接访问它,那么你需要在另一个变量中重新分配动态变量,如$newArr = $$abc,然后访问$newArr。