PHPのように、プレーンテキスト変数から配列を作成しようとしています:
$arraycontent = "'foo', 'bar', 'hallo', 'world'";
print_r( array($arraycontent) );
ただし、文字列全体を [0] として出力します
Array ( [0] => 'foo', 'bar', 'hallo', 'world' )
'foo' を [0]、bar を [1] などにします。ポインタはありますか?これは可能ですか?
文字列が次のような場合:
$arraycontent = "foo, bar, hallo, world"
カンマだけで区切ると、次のように爆発を使用できます。
$myArray = explode(", ", $arraycontent);
これにより、定義した区切り記号 (この場合は ", ") に基づいて文字列の配列が作成されます。
文字列をそのまま保持したい場合は、これを使用できます。
$myArray = explode("', '", trim($arraycontent, "'"));
これで区切り文字として "', '" が使用され、trim() 関数が文字列の先頭と末尾から ' を削除します。
eval('$array = array('.$arraycontent.');');
最短ルートでしょう。
$array = explode(',', $arraycontent);
$mytrim = function($string) { return trim($string, " '"); };
$array = array_map($mytrim, $array);
より安全でより良いもの。別の空白文字がある場合は、$mytrimラムダ関数を編集する必要があります。
このような入力が必要な場合は、トリミングして 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!
編集:また、私のソリューションは他のソリューションよりも大幅に高速(かつより普遍的)であると付け加えるかもしれません。
その普遍性は次の中にあります。