मुझे एक समस्या है जो इसके चेहरे पर सरल लगती है लेकिन मेरे कम रेगेक्स कौशल को हरा दिया है। मेरे पास एक स्ट्रिंग है जिसे मुझे एक सरणी में बदलने की आवश्यकता है और उसके बाद मानों को संसाधित करना है, जो कि काफी आसान है, लेकिन स्ट्रिंग का प्रारूप बदला नहीं जा सकता है (यह कहीं और उत्पन्न होता है) और इसके तर्क ने मुझे परेशान किया है।रेगेक्स के साथ स्ट्रिंग को 2 डी सरणी में कैसे विभाजित करें?
स्ट्रिंग है:
[6] [2] [3] 12.00; [5] [4]
यह मूल रूप से आईडी और दशमलव मान का एक सेट है (इस मामले में आईडी 3 == 12.00)। किसी भी पल में आईडी की मात्रा बदल सकती है और दशमलव मान किसी भी या सभी आईडी में हो सकते हैं।
मैं निम्नलिखित सरणी के लिए होता है एक आदर्श दुनिया में:
Array (
[0] => Array (
[id] => 6
[num] =>
)
[1] => Array (
[id] => 2
[num] =>
)
[2] => Array (
[id] => 3
[num] => 12.00
)
Etc...
आप regex जादूगरों में से किसी को पता है कि यह कैसे कम शपथ ग्रहण के साथ पूरा किया जा सकता की तुलना में मैं प्राप्त कर लिया है है?
मैं अब तक पहचान-पत्र का उपयोग कर निकालने के लिए सक्षम किया गया है: का उपयोग कर दशमलव
preg_match_all('@\[(.*?)\]@s', $string, $array);
और:
preg_match_all('/([0-9]+[,\.]{1}[0-9]{2})/', $string, $array);
लेकिन आईडी के और मूल्यों के बीच संबंध खो देते हैं।
आप विस्फोट और इसके प्रदर्शन की अवधि में regex की तुलना में बेहतर strstr के साथ इस समस्या का समाधान कर सकते हैं। – shox