2012-05-05 21 views
5

我有一个变量看起来像这样:如何通过第一分隔符delmiter拆分只

$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 =“值1 \ n值2 \ n值3 \ n“;

我该怎么做?

选项类型始终是字符串的第一部分,后跟每个由换行符分隔的选项值。

它以这种方式组织,因为它来自用户输入,它使用户更容易处理。

回答

12

您需要使用第三个参数explode()来设置限制。

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

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

echo $bar; 
+0

酷,不知道这是一种选择。 – Talon

1
$values_array = explode("\n", $var); 
$OptionType = $values_array[0]; 
unset($values_array[0]); 
$OptionValues = implode("\n", $values_array); 
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); 
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"