使用php将字符串转换为数组

时间:2012-08-12 19:16:20

标签: php arrays string

我正在尝试将数组结构生成为编码样式,因此可以将其用于进一步开发,以便我使用以下内容:

function convertArray($string)
{
        $finalString = var_export($string, true);
        return stripslashes($finalString);
}

它运行正常,但问题是它在值的开头和结尾添加了额外的引号,如何删除这些引号。

示例生成的字符串如下:

array (
  'foo' => 'array('foo','bar','baz')',
  'bar' => 'array('foo','bar')',
  'baz' => 'array('foo','bar')',
);

我需要的字符串是:

array (
      'foo' => array('foo','bar','baz'),
      'bar' => array('foo','bar'),
      'baz' => array('foo','bar'),
    );

更新

以下是我创建数组的方法:

foreach( $attributes as $attrib )
    {
        if( $attrib->primary_key == '1' )
            $column[$attrib->name] = array("'$attrib->type'", "'$attrib->max_length'", '\'pk\'');
        else
            $column[$attrib->name] = array("'$attrib->type'", "'$attrib->max_length'");

        $string[$attrib->name] = 'array('.implode(',', $column[$attrib->name]).')';
    }

从此循环处理后,最终数组发送到上面的函数,将其转换为我想要的格式/

2 个答案:

答案 0 :(得分:1)

你可以使用反斜杠

$string = "Some text \" I have a double quote";
$string1 = 'Second text \' and again i have quote in text';

失去了变种

您可以使用1个idiot变体来创建许多行字符串,例如:

$string = <<<HERE
Many many text
HERE;

但我不建议使用此变体

答案 1 :(得分:0)

尝试使用trim。 例如:

$string = "'text with quotes'";
echo $string; // output: 'text with quotes'
echo trim($string, array("'")); // output: text with quotes