क्या PHP में बहु-आयामी सरणी को पुनरावर्ती विस्फोट और imploding के लिए कोई फ़ंक्शन हैं?मल्टी आयामी सरणी इम्प्लोड और विस्फोट
उत्तर
आप एक पुनरावर्ती समारोह लिख कर ऐसा कर सकते हैं:
function multi_implode($array, $glue) {
$ret = '';
foreach ($array as $item) {
if (is_array($item)) {
$ret .= multi_implode($item, $glue) . $glue;
} else {
$ret .= $item . $glue;
}
}
$ret = substr($ret, 0, 0-strlen($glue));
return $ret;
}
विस्फोट का सवाल है, यह असंभव है जब तक आप स्ट्रिंग के लिए औपचारिक संरचना के कुछ प्रकार, जिस स्थिति में आप क्रमबद्धता के दायरे में हैं देना है , जिसके लिए पहले से मौजूद कार्य मौजूद हैं: serialize, json_encode, http_build_query दूसरों के बीच।
आह! Serialize वह है जो मुझे नहीं पता था कि मुझे जरूरत है! – HyderA
इसे एरे एरे के अंदर केवल कुछ कॉलम फेंकने का कोई तरीका है? इस तरह, लेकिन केवल डीबी क्षेत्रों को मुद्रित करें? –
आप सरणी में प्रत्येक मान पर दिए गए फ़ंक्शन को कॉल करने के लिए array_walk_recursive
का उपयोग कर सकते हैं। यह फ़ंक्शन कैसा दिखता है वास्तविक डेटा और आप जो करने का प्रयास कर रहे हैं उस पर निर्भर करता है।
मैंने दो रिकर्सिव फ़ंक्शन को इंपोड और विस्फोट करने के लिए बनाया है। multi_explode
का परिणाम अपेक्षित काम नहीं कर सकता है (मान सभी समान आयाम स्तर पर संग्रहीत हैं)।
function multi_implode(array $glues, array $array){
$out = "";
$g = array_shift($glues);
$c = count($array);
$i = 0;
foreach ($array as $val){
if (is_array($val)){
$out .= multi_implode($glues,$val);
} else {
$out .= (string)$val;
}
$i++;
if ($i<$c){
$out .= $g;
}
}
return $out;
}
function multi_explode(array $delimiter,$string){
$d = array_shift($delimiter);
if ($d!=NULL){
$tmp = explode($d,$string);
foreach ($tmp as $key => $o){
$out[$key] = multi_explode($delimiter,$o);
}
} else {
return $string;
}
return $out;
}
उन्हें इस्तेमाल करने के लिए:
echo $s = multi_implode(
array(';',',','-'),
array(
'a',
array(10),
array(10,20),
array(
10,
array('s','t'),
array('z','g')
)
)
);
$a= multi_explode(array(';',',','-'),$s);
var_export($a);
मैंने पाया है, तो आप स्वचालित रूप से var_dump की तरह मूल्य मुद्रण के बिना बहु-आयामी सरणी के एक पठनीय स्ट्रिंग प्रतिनिधित्व (विस्फोट) की जरूरत है कि var_export अच्छा है।
- 1. मल्टी-आयामी सरणी और पॉइंटर पॉइंटर्स
- 2. मल्टी-आयामी एनएसएआरएआरई ऑब्जेक्ट
- 3. सरणी मान इम्प्लोड करें?
- 4. पीएचपी विस्फोट और सरणी
- 5. PHP विस्फोट और सरणी अनुक्रमणिका
- 6. जावा स्क्रिप्ट में निम्न मल्टी-आयामी सरणी कैसे मुद्रित करें?
- 7. मल्टी-आयामी नेस्टेड ओपनएमपी लूप
- 8. दो आयामी सरणी और संकेत
- 9. सरणी बनाम बहु-आयामी सरणी
- 10. बहु-आयामी सरणी बनाम एक आयामी
- 11. 2-आयामी सरणी बनाम 1-आयामी सरणी बनाम
- 12. एक 1 आयामी सरणी में बहु आयामी सरणी
- 13. एक बहु-आयामी सरणी
- 14. बहु आयामी सरणी php
- 15. 2 आयामी सरणी सूची
- 16. 2-आयामी सरणी?
- 17. 2 आयामी सरणी
- 18. बहु-आयामी सरणी बनाम एकाधिक सरणी
- 19. मल्टी लाइन सरणी शाब्दिक
- 20. stdClass ऑब्जेक्ट्स की सरणी पर इम्प्लोड का उपयोग कैसे करें?
- 21. एक बहु-आयामी सरणी/वस्तु
- 22. जावा - प्रिंटिंग दो आयामी सरणी
- 23. PHP दो बहु-आयामी सरणी
- 24. फ्लैट सरणी को बहु-आयामी
- 25. दो आयामी सरणी (वाई अक्ष)
- 26. एल्गोरिदम एक बहु-आयामी सरणी को एक-आयामी सरणी में परिवर्तित करने के लिए
- 27. स्कैला में बहु-आयामी सरणी कैसे बनाएं और उपयोग करें?
- 28. एरे और स्प्लिट कमांड 2 आयामी सरणी बनाने के लिए
- 29. पर्ल 2-आयामी सरणी कैसे मुद्रित करें?
- 30. एक वास्तविक बहु आयामी सरणी क्या है?
मुझे लगता है कि आप लोग बंदूक कूद गए हैं। आपके द्वारा उत्तर के रूप में चिह्नित प्रश्न इस प्रश्न का बिल्कुल सही जवाब नहीं है। आपको उस डुप्ली बटन को मारने से पहले पढ़ना चाहिए। यह इतना मुश्किल नही है। – Jeffz
यह प्रश्न गलत तरीके से [implode-data-from-a-multi-आयामी-array] के डुप्लिकेट के रूप में चिह्नित किए गए हैं (http://stackoverflow.com/questions/16710800/implode-data-from-a-multi-dimensional- सरणी)। यह प्रश्न सामान्य रूप से imploding/विस्फोट के बारे में है जबकि दूसरा एक बहु-आयामी सरणी में एक कुंजी को imploding के बारे में है। –
json_encode/json_decode बहु-आयामी सरणी पैक, अनपैक और स्टोर करने के भी अच्छे तरीके हैं। json_encode '[' foo '=> [' bar '=> 1,' baz '=> [2,3]]] जैसे सरणी को एन्कोड कर सकता है और '{" foo ": {" bar "जैसे स्ट्रिंग को वापस कर देगा: 1, "baz": [2,3]}} '। json_decode फिर जेएसओएन-एन्कोडेड स्ट्रिंग को ऑब्जेक्ट के रूप में वापस कर सकता है। जेएसओएन डेटा जेएसओएन ('stdClass ऑब्जेक्ट ([foo] => stdClass ऑब्जेक्ट ...}') के रूप में PHP से जावास्क्रिप्ट से डेटा पास करते समय आसान होता है। –