PHP Manual के अनुसार, array_map
पर NULL
कॉलबैक के साथ कॉल करने से यह "ज़िप" फ़ंक्शन निष्पादित करता है, जो दिए गए सरणी से समानांतर तत्वों के सरणी बना देता है।क्या PHP 2 डी सरणी को स्थानांतरित करने का कोई बेहतर तरीका है?
उदाहरण के लिए:
array_map(NULL,array(1,2,3),array('a','b','c'));
पैदावार
array(array(1,'a'),array(2,'b'),array(3,'c'))
यह भी अभी सरणी
array(array(1,2,3),array('a','b','c'))
transposing के बराबर है, ऐसा लगता है यह सबसे करीब तरीका है (बनाया का उपयोग -इन फ़ंक्शंस) आप एक सरणी को ट्रांसफर कर सकते हैं, सिवाय इसके कि array_map
एआर की एक सूची लेता है ऐस, सरणी की सरणी नहीं।
कुछ कोड में मैं पर काम कर रहा हूँ, मैं सरणियों की एक सरणी, नहीं सरणियों की एक सूची स्थानांतरित करने के लिए की जरूरत है, तो मैं इस काम के आसपास बनाया:
call_user_func_array('array_map',array_merge(array(NULL),$array_of_arrays))
बहरहाल, यह बहुत गंदा और अनाड़ी लगता है ।
और इसलिए मैं पूछता हूं:
क्या कस्टम कार्यान्वयन के अलावा PHP के साथ 2 डी सरणी को स्थानांतरित करने का कोई बेहतर तरीका है?
और यह बदल '$ array_of_arrays' अगर मैं इसे बाद में उपयोग करने के लिए चाहते हो जाएगा, तो मैं' array_shift करना होगा ($ array_of_arrays) 'बाद में ... –
@ ऑस्टिन हाइड: सच। आप केवल सरणी की एक प्रति बना सकते हैं: '$ array_of_arrays = $ my_arrays_of_arrays' पहले से – user102008
यह केवल तभी काम करता है जब मैट्रिस रैंक> 1 – gurghet