PHP - String Concatenation - By loop -


यह मेरा कोड है,

  यदि ($ _SESSION ["crossfit"] == "वाई") (यदि ($ _SESSION ["tr_duration1"] == 1) {$ dr1 = "1 महीना"; } और {यदि ($ _SESSION ["tr_duration1"] == 12) {$ dr1 = "1 वर्ष"; } और {$ dr1 = $ _ सत्र ["tr_duration1"] 'महीने'; }} $ C1 = 'क्रॉसफ़िट -' $ Dr1;} यदि ($ _SESSION ["मुयथई"] == "वाई") {यदि ($ _SESSION ["tr_duration2"] == 1) {$ dr2 = "1 महीना"; } और {यदि ($ _SESSION ["tr_duration2"] == 12) {$ dr2 = "1 वर्ष"; } और {$ dr2 = $ _ सत्र ["tr_duration2"] 'महीने'; }} $ C2 = ', मुयथई -' $ Dr2;} यदि ($ _SESSION ["mma"] == "वाई") {यदि ($ _SESSION ["tr_duration3"] == 1) {$ dr3 = "1 महीना"; } और {यदि ($ _SESSION ["tr_duration1"] == 12) {$ dr3 = "1 वर्ष"; } और {$ dr3 = $ _ सत्र ["tr_duration3"] 'महीने'; }} $ C3 = ', एमएमए -' $ Dr3;} अगर ($ _SESSION ["जिमनास्टिक"] == "वाई") {यदि ($ _SESSION ["tr_duration4"] == 1) {$ dr4 = "1 महीना"; } और {यदि ($ _SESSION ["tr_duration4"] == 12) {$ dr4 = "1 वर्ष"; } और {$ dr4 = $ _ सत्र ["tr_duration4"] 'महीने'; }} $ C4 = ', जिमनास्टिक्स -'। $ Dr4;} = $ c1 के लिए $ $ सी 2 $ C3 $ C4 '।';  

प्रोग्राम में कम से कम एक प्रोग्राम 'वाई' या उन सभी को होगा।

मुझे क्या चाहिए यह है कि $ c1 $ c2 $ c3 $ c4 अलग से बाहर आ जाता है द्वारा ',' और समाप्त होता है '।' इसलिए यह पठनीय हो जाता है।

मेरी समस्या है अगर मैं डाल

$ for = $ c1 $ सी 2 $ C3 $ C4 और ',' $ c1 के साथ और प्रोग्राम 2 और 3 का चयन करें

मुझे मिल रहा है

  $ for =, Muaythai - 3 महीने, एमएमए - 12 महीने  

बेशक मैं चाहता हूँ,

<पूर्व> $ for = Muaythai - 3 महीने, एमएमए - 12 महीने

अगर मैं '$' को सीधा में डाल देता हूं और $ 2 से दूसरे सीडी को निकाल देता है तो

  $ = $ c1 के लिए $ ',' $ सी 2 ',' $ C3 ',' $ C4 '।'  

मुझे मिलता है

  $ for $, Muaythai - 3 महीने, एमएमए - 12 महीने।  

मुझे चाहिए

<पूर्व> $ for = Muaythai - 3 महीने, एमएमए - 12 महीने

मैंने भी इतने सारे isset के घोंसले के शिकार डाल करने की कोशिश की है, लेकिन सफल नहीं हुआ है। मैंने 'के लिए' लूप बनाकर भी कोशिश की है, लेकिन आउटपुट त्रुटियों की तुलना में अधिक सिंटैक्स त्रुटियों के साथ समाप्त हो गया है

यह केवल ठीक काम करता है, अगर मैं केवल पहला प्रोग्राम या सभी 4 प्रोग्राम का चयन करता हूं।

<

  $ tmp = सरणी ($ c1, $ c2,  

$ सी 3, $ सी 4); $ फ़िल्टर किया गया है = array_filter ($ tmp); $ के लिए $ implode (",", $ फ़िल्टर)। "।";

यह किसी भी $ c _ वेरिएबल को मिटा देगा जो आबादी वाले नहीं हैं, और उन्हें अल्पविराम के साथ अलग करें।


संपादित करें: मैंने आपके कोड को पुनः प्राप्त किया है, और इस अनुकूलित संस्करण का सुझाव देना चाहूंगा:

  $ keys = array ("Crossfit", "Muaythai", "MMA", "जिमनास्टिक्स"); $ परिणाम = सरणी (); विदेशी मुद्रा ($ i = & gt; $ नाम के रूप में $ की कुंजी) {यदि ($ _SESSION [स्ट्रटोलर ($ नाम)] == "वाई") {$ अवधि = $ _SESSION ['tr_duration'। ($ I + 1)]; स्विच ($ अवधि) {मामला 1: $ dur = "1 महीना"; टूटना; मामला 12: $ डर = "1 वर्ष"; टूटना; डिफ़ॉल्ट: $ dur = $ अवधि। "महीनों"; } $ परिणाम [] = $ नाम "-"। $ Dur; }} यदि (! $ परिणाम) $ के लिए = "कुछ भी नहीं चुना!"; = $ Implode के लिए $ (",", $ परिणाम)। ";";  

अगर आपको समझने में सहायता की आवश्यकता है कि यहां क्या हो रहा है, तो पूछने में संकोच करें!


Comments

Popular posts from this blog

Selenium IDE Conditional Statements -

ruby on rails - How to avoid ActionController::InvalidCrossOriginRequest exception? -

sql - Select count and aggregate, but only unique -