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。
如果我有:
<?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。