2012-06-27 8 views
6

मैं एक साहचर्य सरणी जो जब वर इस तरह दिखता है फेंक दिया है:PHP: यदि यह एक एसोसिएटिव सरणी है तो उसके संख्यात्मक ऑफ़सेट द्वारा सरणी का मान कैसे प्राप्त करें?

Array 
(
    [tumblr] => Array 
     (
      [type] => tumblr 
      [url] => http://tumblr.com/ 
     ) 

    [twitter] => Array 
     (
      [type] => twitter 
      [url] => https://twitter.com/ 
     ) 

) 

आप कुंजी के कस्टम "Tumblr" और "ट्विटर" और संख्यात्मक नहीं 0 और 1.

कभी-कभी हैं देख सकते हैं मुझे कस्टम कुंजी द्वारा मान प्राप्त करने की आवश्यकता है और कभी-कभी मुझे संख्यात्मक कुंजी द्वारा मान प्राप्त करने की आवश्यकता होती है।

(
    [type] => tumblr 
    [url] => http://tumblr.com/ 
) 
+0

संख्यात्मक और स्ट्रिंग कुंजी PHP में अंतर-परिवर्तनीय नहीं हैं। क्या आप और अधिक वर्णन कर सकते हैं जो आपको चाहिए? –

+0

PHP में सभी सरणी सहयोगी हैं, यहां तक ​​कि संख्यात्मक रूप से अनुक्रमित भी हैं। इसका अर्थ यह है कि यदि आप इंडेक्स के रूप में स्ट्रिंग असाइन करते हैं, तो कोई संबंधित संख्यात्मक मान नहीं है। @nickb के पास इस से निपटने का एक अच्छा तरीका है। –

+0

@ माइकल किसी और के कोड के साथ काम करने से भी नहीं पूछता है और पूरी चीज को फिर से लिखने जैसा महसूस नहीं करता है। – TK123

उत्तर

9

आप array_values() के माध्यम से सरणी चला सकते हैं::

array(2) { 
    [0]=> 
    array(2) { 
    ["type"]=> 
    string(6) "tumblr" 
    ["url"]=> 
    string(18) "http://tumblr.com/" 
    } ... 

:

$myarray = array_values($myarray); 

अब आप अपने सरणी की तरह लग रहा

वहाँ anyy तरह से मैं उत्पादन के लिए $myarray[0] प्राप्त कर सकते हैं है ऐसा इसलिए है क्योंकि array_values() केवल मानों को पकड़ लेगा f सरणी को रोम करें और रीसेट/रीडर/सरणी को संख्यात्मक सरणी के रूप में रीकी करें।

+1

'$ myarray + = array_values ​​($ myarray); 'एक सरणी तैयार करेगी जो नाम और संख्यात्मक इंडेक्स दोनों का उपयोग कर सकती है, वैसे ही mysql_fetch_array काम करता है :) –

+1

+1 विवरण जोड़ने के लिए –

0

आप संख्यात्मक अनुक्रमणिका के साथ सरणी की एक प्रति प्राप्त करने के लिए array_values का उपयोग कर सकते हैं।

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