将字符串(以数组格式)转换为php中的数组

时间:2016-05-13 07:35:52

标签: php

在我的项目中,我必须转换一个数组格式的字符串:

$str = "array(array('text', 'Video Code', 0, 'videoCode', '', 'Paste the youtube Video Code'))";

有没有办法将它转换为如下数组:

$array = array(array('text', 'Video Code', 0, 'videoCode', '', 'Paste the youtube Video Code'));

注意:数组可能超过10维。

3 个答案:

答案 0 :(得分:3)

// if format of the string is like
$str = "array(array('text', 'Video Code', 0, 'videoCode', '', 'Paste the youtube Video Code'))";
// Make json format from it
$str = str_replace(['array(', ')', "'"], ['[',']', '"'], $str);
// And decode
print_r(json_decode($str, true));

结果

Array
(
    [0] => Array
        (
            [0] => text
            [1] => Video Code
            [2] => 0
            [3] => videoCode
            [4] => 
            [5] => Paste the youtube Video Code
        )
)

答案 1 :(得分:2)

您可以使用eval,但不建议在公共数据上使用。

$str = "\$arr = array(array('text', 'Video Code', 0, 'videoCode', '', 'Paste the youtube Video Code'));";
eval($str);
print_r($arr);

来自PHP手册:

  

警告eval()语言结构非常危险,因为它   允许执行任意PHP代码。因此不鼓励使用它。   如果您已经仔细确认除了以外没有其他选择   使用此构造,请特别注意不要传递任何用户   提供数据而未事先正确验证。

答案 2 :(得分:1)

试试这个:

$str = "array(array('text', 'Video Code', 0, 'videoCode', '', 'Paste the youtube Video Code'))";
$str = trim($str,"array(");
$str = trim($str,")");
$arr = explode(",",$str);
$arr_final = array();
$arr_final[] = $arr;
print '<pre>';print_r($arr_final);