如何从 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 函数被认为是非常危险的,如果您从用户那里收到一个字符串,那么您不应该信任该数据。
我还想强调一下,如果您使用托管服务,那么该功能可能无法使用,因为出于安全原因,它通常被禁用。
我试图在 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 函数被认为是非常危险的,如果您从用户那里收到一个字符串,那么您不应该信任该数据。
我还想强调一下,如果您使用托管服务,那么该功能可能无法使用,因为出于安全原因,它通常被禁用。