1

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

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]).')';
    }

从这个循环处理后,最终数组发送到上述函数以将其转换为我想要的形式/

4

2 回答 2

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;

但我不建议使用此变体

于 2012-08-12T20:06:20.627 回答
0

尝试使用修剪。例子:

$string = "'text with quotes'";
echo $string; // output: 'text with quotes'
echo trim($string, array("'")); // output: text with quotes
于 2012-08-12T19:22:06.447 回答