Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组中的PHP值_Php_Arrays - Fatal编程技术网

数组中的PHP值

数组中的PHP值,php,arrays,Php,Arrays,我正在尝试解决如何根据数组名从三个数组中的一个数组中获取值 $ABC001 = array('A'=>'10','B'=>'2','C'=>'1.0'); $ABC002 = array('A'=>'20','B'=>'4','C'=>'1.1'); $ABC003 = array('A'=>'30','B'=>'6','C'=>'1.2'); 我有一个变量传递给我的脚本,它将包含如下内容ABC@001或ABC@002 我正在删除@,因此v

我正在尝试解决如何根据数组名从三个数组中的一个数组中获取值

$ABC001 = array('A'=>'10','B'=>'2','C'=>'1.0');
$ABC002 = array('A'=>'20','B'=>'4','C'=>'1.1');
$ABC003 = array('A'=>'30','B'=>'6','C'=>'1.2');
我有一个变量传递给我的脚本,它将包含如下内容ABC@001或ABC@002

我正在删除@,因此var值现在与数组名匹配/

$test = str_replace('@','',$var);
如果我执行var_dump$$test,我将从正确的数组中获取所有值,但是如果执行echo$$test['A']或echo$$test[0],我不会从正确数组中的第一个键获取值

有人能建议怎么做吗


谢谢

尝试使用${$test}获取数组的值

<?php

$ABC001 = array('A'=>'10','B'=>'2','C'=>'1.0');
$ABC002 = array('A'=>'20','B'=>'4','C'=>'1.1');
$ABC003 = array('A'=>'30','B'=>'6','C'=>'1.2');

$var = "ABC@002";

$test = str_replace('@','',$var);

var_dump(${$test}['A']);                                                                       

为了在数组中使用变量,必须解决歧义问题。也就是说,如果您编写$$test['A'],那么解析器需要知道您是否打算使用$test['A']作为变量,解决这种歧义的语法是:${$test}['A']。请检查此处的文档

创建一个数组:$ABC=['001'=>['A'=>'10',…],…]!