如何将数组的字符串表示形式转换为普通数组

时间:2016-08-30 02:37:18

标签: php arrays

我在文件中有数组的字符串表示。我需要将其转换为数组。如何实现这一点。

例如

$arr = 'array(1,2,3,4,5,6)'; 

echo getType($arr); // string

//convert $arr to type array

echo getType($arr); // array

3 个答案:

答案 0 :(得分:0)

这取决于文件是否完全由有效的PHP组成。如果是,你只能include该文件。否则,鉴于此字符串是有效的PHP,您可以 eval字符串,但通常这被视为几乎任何问题的不良解决方案。

如果整个文件都是有效的PHP而您只想在另一个脚本中使用include。

somefile.php

return array(1,2,3,4,5,6);

someotherfile.php

$arr = include 'somefile.php';
var_dump($arr);

这会给你......

array(6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}

答案 1 :(得分:0)

我不知道字符串格式是否已修复。

如果不是,您可以查看serialize()unserialize()

假设格式是写的,另一种方法是通过requireinclude执行文件,而不是将其作为字符串读取。这将在您的上下文中创建变量。这种方法存在一些小问题,例如封闭标签,但也许在您的情况下可以解决。

最后我也发现了这种方法:Execute PHP code in a string。这是我的第二种方法的改进变体。

答案 2 :(得分:0)

使用php-array-parser

但是它不能同时处理不同类型的令牌,例如“数组()”和“[]”。