0

PHPのように、プレーンテキスト変数から配列を作成しようとしています:

$arraycontent = "'foo', 'bar', 'hallo', 'world'";
print_r( array($arraycontent) );

ただし、文字列全体を [0] として出力します

Array ( [0] => 'foo', 'bar', 'hallo', 'world' ) 

'foo' を [0]、bar を [1] などにします。ポインタはありますか?これは可能ですか?

4

7 に答える 7

1

文字列が次のような場合:

$arraycontent = "foo, bar, hallo, world"

カンマだけで区切ると、次のように爆発を使用できます。

$myArray = explode(", ", $arraycontent);

これにより、定義した区切り記号 (この場合は ", ") に基づいて文字列の配列が作成されます。

文字列をそのまま保持したい場合は、これを使用できます。

$myArray = explode("', '", trim($arraycontent, "'"));

これで区切り文字として "', '" が使用され、trim() 関数が文字列の先頭と末尾から ' を削除します。

于 2013-08-26T23:58:19.943 に答える
0
eval('$array = array('.$arraycontent.');');

最短ルートでしょう。


$array = explode(',', $arraycontent);
$mytrim = function($string) { return trim($string, " '"); };
$array = array_map($mytrim, $array);

より安全でより良いもの。別の空白文字がある場合は、$mytrimラムダ関数を編集する必要があります。

于 2013-08-26T23:51:59.560 に答える
0

このような入力が必要な場合は、トリミングして preg_split() を使用することをお勧めします。

$arraycontent = "'foo', 'bar', 'hallo', 'world'";
$trimmed = trim($arraycontent, " \t\n\r\0\x0B'\""); // Trim whitespaces and " and '
$result = preg_split("#['\"]\s*,\s*['\"]#", $trimmed); // Split that string with regex!
print_r($result); // Yeah, baby!

編集:また、私のソリューションは他のソリューションよりも大幅に高速(かつより普遍的)であると付け加えるかもしれません。

その普遍性は次の中にあります。

  • " と ' の両方を正しい引用符として認識し、
  • 引用テキストの前後の余分なスペースは無視されます。その中にはありません。
于 2013-08-26T23:52:24.290 に答える