2012-01-26 19 views
19

के अंतिम आइटम मैं $array के अंतिम आइटम के मूल्य प्राप्त करने के लिए निम्नलिखित का उपयोग कर सकते के लिए एक संदर्भ हो रही है। मैं उस वस्तु का संदर्भ कैसे प्राप्त कर सकता हूं?एक सरणी

$last_item = end($array); 

$array के आइटम अनुक्रमित सरणियों कर रहे हैं।

+0

http: //www.php .NET/manual/en/function.end.php # 24804 –

उत्तर

35
end($array); 
$referenceToLastElement = &$array[key($array)]; 
+0

यह दिलचस्प है। मुझे आश्चर्य है कि यह स्वीकार किए गए उत्तर में दृष्टिकोण की तुलना में बेहतर प्रदर्शन करेगा। –

+1

@EmanuilRusev: यह बेहतर प्रदर्शन करेगा क्योंकि यह किसी भी सरणी पर सही ढंग से काम करेगा। – Jon

+0

क्या यह गिनती() विधि से तेज़ है? –

-1
list($last_key,$last_value) = each(array_slice($array,-1,1,true)); 

प्रयास नंबर 2?

$last_item = &$array[array_pop(array_keys($array))]; 

जो आपको सरणी के अंतिम तत्व के लिए एक चर संदर्भ देता है।

+0

मुझे यह नहीं मिला। मुझे न तो अंतिम तत्व की कुंजी की आवश्यकता नहीं है, न ही इसका मूल्य - केवल एक संदर्भ। –

+0

मुझे यकीन नहीं है कि मैं समझता हूं कि "केवल एक संदर्भ" से आपका क्या मतलब है। मेरे पास एक और कोशिश होगी। संपादन देखें। –

2

count() आप सरणी है, जो आपको कुछ साधारण अंकगणित आवेदन कर सकते हैं सरणी के पिछले तत्व के लिए एक संदर्भ पाने के लिए करने के लिए की लंबाई दे देंगे:

$array = array(
    array('jkl' => '456'), 
    array('abc' => '456'), 
); 
print_r($array); 
$last_item = &$array[count($array) - 1]; 
$last_item['abc'] = '123'; 
print_r($array); 
+0

है, यह एक ऐसा उत्तर है जिसकी मैं उम्मीद कर रहा था। –

+0

कोई समस्या नहीं, मदद करने में खुश! – leepowers

+7

यह केवल तभी काम करेगा जब सरणी को 0 से शुरू होने वाले एक अखंड पूर्णांक अनुक्रम के साथ अनुक्रमित किया गया हो - एक बड़ा "अगर"। – Jon