2012-11-22 12 views
15

लौट रहा है मेरे पास एक फ़ंक्शन है और मुझे दो एरे वापस करने की आवश्यकता है।पीएचपी फ़ंक्शन दो एरे

मुझे पता है कि एक फ़ंक्शन केवल एक चर वापस कर सकता है .. क्या मेरे दो सरणी वापस करने का कोई तरीका है?

यदि मैं उन्हें जोड़ता हूं, तो फ़ंक्शन से बाहर होने पर मैं उन्हें साफ तरीके से कैसे अलग कर सकता हूं?

+0

वास्तव में स्वीकार्य उत्तर के समान ही, बहुत अधिक स्पष्टीकरण के साथ: http://stackoverflow.com/questions/3451906/multiple-returns-from-function#answer-3579950 – caramba

उत्तर

50

श्रेणीबद्ध करने के लिए आवश्यकता नहीं: बस दो सरणियों की वापसी सरणी, इस तरह:

function foo() { 
    return array($firstArray, $secondArray); 
} 

... तो आप ये सरणियों इस तरह, list साथ स्थानीय चर के लिए आवंटित करने के लिए सक्षम हो जाएगा:

list($firstArray, $secondArray) = foo(); 

और अगर आप पीएचपी 5.4 के साथ काम करते हैं, आप सरणी शॉर्टकट वाक्य रचना यहाँ भी उपयोग कर सकते हैं:

function foo54() { 
    return [$firstArray, $secondArray]; 
} 
+0

बहुत बहुत धन्यवाद! अच्छा जवाब प्राप्त करने के लिए – lleoun

+1

+1 :) –

+0

बढ़िया, धन्यवाद! –

2

मुझे लगता है कि raina77ow का जवाब पर्याप्त रूप से आपके प्रश्न का उत्तर देता है। विचार करने का एक और विकल्प लेखन पैरामीटर का उपयोग करना है।

function foobar(array &$arr1 = null) 
{ 
    if (null !== $arr1) { 
     $arr1 = array(1, 2, 3); 
    } 

    return array(4, 5, 6); 
} 

फिर, कॉल करने के लिए:

$arr1 = array(); 
$arr2 = foobar($arr1); 

अगर आप हमेशा दो सरणियों वापस जाने के लिए की जरूरत है उपयोगी नहीं होगी, लेकिन यह हमेशा एक सरणी वापस जाने के लिए इस्तेमाल किया जा सकता है और अन्य वापसी केवल कुछ मामलों में।

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