我有一个看起来像这样的变量:
$var = "Dropdown\n
Value 1\n
Value 2\n
Value 3\n";
正如您所看到的,它基本上是由换行符破坏的值。
我想要做的是获取选项类型,在本例中为“Dropdown”,并将其余值存储在另一个字符串中。
所以
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”;
我该怎么做?
选项类型始终是字符串的第一部分,后跟选项值,每个选项值由换行符分隔。
它以这种方式组织,因为它来自用户输入,它使用户更容易处理。
答案 0 :(得分:15)
您需要使用explode()
的第三个参数来设置限制。
$var = "Dropdown\n
Value 1\n
Value 2\n
Value 3\n";
list( $foo, $bar ) = explode( "\n", $var, 2 );
echo $bar;
答案 1 :(得分:1)
$values_array = explode("\n", $var);
$OptionType = $values_array[0];
unset($values_array[0]);
$OptionValues = implode("\n", $values_array);
答案 2 :(得分: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);
答案 3 :(得分: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"