2012-05-05 25 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"