2012-05-05 15 views
5

मैं एक चर है कि इस तरह दिखता है:पहले सीमांकक द्वारा एक delmiter द्वारा विभाजित करने के लिए कैसे केवल

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

आप देख सकते हैं यह है मूल रूप से मूल्यों को लाइन ब्रेक से टूट।

मैं क्या करना चाहता हूं विकल्प विकल्प प्राप्त करें, इस मामले में "ड्रॉपडाउन" और बाकी मानों को किसी अन्य स्ट्रिंग में संग्रहीत करें।

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

मैं $ OptionValues ​​चाहते हैं तो इस तरह बनना: $ OptionValues ​​= "

तो

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

ऊपर कोड है कि मैं क्या करने की कोशिश की, लेकिन यह है कि क्या तारों के रूप में बाहर आ गया है मान 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" 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^