2012-08-12 5 views
1

Je suis en train de générer la structure de tableau en tant que style de codage de sorte qu'il peut être utilisé pour le développement ultérieur à cette fin, je l'ai utilisé suivant:chaîne Convertir en tableau en utilisant php

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

Il a bien fonctionné, mais le problème est qu'il ajoute les citations supplémentaires au début et à la fin de la valeur comment puis-je supprimer ces citations.

Exemple chaîne générée est la suivante:

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

La chaîne i besoin est:

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

MISE À JOUR

Voici comment je crée mon tableau:

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

après le traitement à partir de cette boucle le tableau final envoyé à la fonction ci-dessus pour le convertir en ma forme souhaitée/

+0

Je viens d'exécuter votre code sur mon PHP 5.3.10 - il n'ajoute aucune de ces citations. Envisagez une mise à niveau si vous utilisez des versions plus anciennes. – Tim

+1

vous ne voulez pas une chaîne, vous voulez un tableau. – Kalpesh

+0

pouvez-vous poster ce qui est dans '$ string' exactement que vous avez passé en fonction? – Kalpesh

Répondre

0

essayez d'utiliser trim. Exemple:

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

garniture ne fait aucune différence à la sortie –

1

Et vous pouvez utiliser antislashs

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

Et variante perdue

Vous pouvez utiliser 1 variante idiot pour créer de nombreuses chaînes de lignes un dans l'exemple:

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

Mais je ne recommande pas d'utiliser cette variante

+0

S'il vous plaît voir la mise à jour –

Questions connexes