如何从 PHP 中的字符串获取数组值到变量?

How to get array value to variable from string in PHP?

我试图在 PHP 中获取多维数组的值,这是一个变量的值。

多维数组的值为12345

$data_array['result']['21']['rich_snippet']['top']['detected_extensions']['reviews'] = "12345";

数组和索引存储为变量 $x 的值

$x = "data_array['organic_results']['21']['rich_snippet']['top']['detected_extensions']['reviews'] ";

我预计 echo $$x; 将 return 数组的值 12345,但我得到 null

我假设您想从字符串中获取数组值。

可以这样实现:

$data_array['result']['21']['rich_snippet']['top']['detected_extensions']['reviews'] = "12345";
    
$string = "data_array['result']['21']['rich_snippet']['top']['detected_extensions']['reviews']";
    
//Here we escape the $ symbol and substitute our string, then we execute the string through the eval function
$value = eval("return ${$string};"); 
    
echo $value;

备注

eval 函数被认为是非常危险的,如果您从用户那里收到一个字符串,那么您不应该信任该数据。


我还想强调一下,如果您使用托管服务,那么该功能可能无法使用,因为出于安全原因,它通常被禁用。