6

次のような変数があります。

$var = "Dropdown\n
  Value 1\n
  Value 2\n
  Value 3\n";

ご覧のとおり、基本的に値は改行で区切られています。

私がしたいのは、オプション タイプ (この場合は「ドロップダウン」) を取得し、残りの値を別の文字列に格納することです。

そう

list($OptionType, $OptionValues) = explode("\n", $var);

上記のコードは私が試したものですが、文字列は次のようになりました。

$OptionType = 'Dropdown'; //Good
$OptionValues = 'Value 1';  // Only got the first value

$OptionValues を次のようにしたい: $OptionValues = "Value 1\nValue 2\nValue 3\n";

どうすればそのようなことをするでしょうか?

Option Type は常に、文字列の最初の部分であり、その後に改行で区切られたオプション値が続きます。

ユーザー入力に基づいているため、このように編成されており、ユーザーが扱いやすくなっています。

4

4 に答える 4

20

制限を設定する の 3 番目の引数を使用する必要がありexplode()ます。

$var = "Dropdown\n
  Value 1\n
  Value 2\n
  Value 3\n";

list( $foo, $bar ) = explode( "\n", $var, 2 );

echo $bar;
于 2012-05-05T23:19:34.170 に答える
1
$values_array = explode("\n", $var);
$OptionType = $values_array[0];
unset($values_array[0]);
$OptionValues = implode("\n", $values_array);
于 2012-05-05T23:18:49.677 に答える
1

array_shift を使用して、最初に展開された要素を自動的にポップオフし、残りを結合できます。

<?
$var = "Dropdown\nValue 1\nValue 2\nValue 3\n";

$exploded = explode("\n", $var);
$OptionType = array_shift($exploded);
$OptionValues = join("\n", $exploded);

echo $OptionType . "\n";
print_r($OptionValues);
于 2012-05-05T23:21:09.993 に答える
1

配列を爆発させる必要はありません。

これがあなたのために働くコードです:

$var = "Dropdown\nValue 1\nValue 2\nValue 3\n";
$the_first_element = substr($var,0,strpos($var,"\n"));
$what_i_want = substr($var,strpos($var,"\n")+1);

//returns :
//"Dropdown"
//"Value1\nValue2\nValue3\n"
于 2012-05-06T00:52:11.267 に答える