PHP - सरणी मान का मुख्य नाम प्राप्त करें


157

मेरे पास निम्न के रूप में एक सरणी है:

function example() {
    /* some stuff here that pushes items with
        dynamically created key strings into an array */

    return array( // now lets pretend it returns the created array
        'firstStringName' => $whatEver,
        'secondStringName' => $somethingElse
    );
}

$arr = example();

// now I know that $arr contains $arr['firstStringName'];

मुझे सूचकांक का पता लगाने की आवश्यकता है $arr['firstStringName']ताकि मैं इसके सूचकांक द्वारा array_keys($arr)कुंजी स्ट्रिंग के माध्यम से लूप और वापस कर 'firstStringName'सकूं। मैं उसे कैसे कर सकता हूँ?


क्या आप जो हासिल करने की कोशिश कर रहे हैं, उसके उपयोग के मामले में विस्तार से बता सकते हैं?
nikc.org

जवाबों:


332

यदि आपके पास मूल्य है और कुंजी ढूंढना चाहते हैं array_search(), तो इस तरह का उपयोग करें:

$arr = array ('first' => 'a', 'second' => 'b', );
$key = array_search ('a', $arr);

$keyअब मान के लिए कुंजी समाहित करेगा 'a'(जो है, 'first')।


21
array_filter()उपयोग किया जा सकता है अगर आपको केवल पहले मिलान के बजाय सभी मिलान परिणामों को वापस करने की आवश्यकता है, क्योंकि यह चाबियाँ संरक्षित करता है।
माइक लियोन

5
कुछ ऐसा है जो मुझे यहाँ ध्यान देने योग्य लगता है: यह समाधान मेरे लिए काम नहीं कर रहा था, जब तक कि मुझे पता नहीं चला कि सरणी को छांटना (सॉर्ट ($ गिरफ्तारी)) प्रमुख नामों को हटा देता है, और डिफ़ॉल्ट 0,1,2, आदि इंडेक्स मानों को रीसेट करता है। इसलिए यदि आप छँटाई कर रहे हैं, तो asort (asort ($ arrest)) का उपयोग करें। यह प्रमुख मूल्यों को बनाए रखता है। php.net/manual/en/function.asort.php
Rich701

63
key($arr);

वर्तमान सरणी तत्व के लिए मुख्य मान लौटाएगा

http://uk.php.net/manual/en/function.key.php


@AnthonyRutledge यह केवल वही बताएगा जो आंतरिक पॉइंटर वर्तमान में "इंगित किया गया" है। यदि हमें एक और संदर्भ की आवश्यकता है, तो हमें zrvans पद्धति का उपयोग करना चाहिए, जो विशेष रूप से अनुरोधित मूल्य का शिकार करता है।
परपलूई

39

अगर मैं सही तरीके से समझूं, तो क्या आप बस इस्तेमाल नहीं कर सकते:

foreach($arr as $key=>$value)
{
  echo $key;
}

PHP मैनुअल देखें


मुझे लगता है कि वह array_search
Junior

18

यदि नाम का गतिशील है, तो आपके पास कुछ होना चाहिए

$arr[$key]

जिसका अर्थ होगा कि $ कुंजी में कुंजी का मूल्य समाहित है।

आप array_keys()किसी सरणी की सभी कुंजियों को प्राप्त करने के लिए उपयोग कर सकते हैं , जैसे

$arr = array('a' => 'b', 'c' => 'd')
$x = array_keys($arr);

आपको देगा

$x = array(0 => 'a', 1 => 'c');

16

हाँ, आप php को संक्रमित कर सकते हैं कुछ भाषाओं में से एक है जो इस तरह का समर्थन प्रदान करती है।

foreach($arr as $key=>$value)
{

}

यह खोज और अधिक समय लेने वाले के अनुसार प्रासंगिक उत्तर नहीं है .. कम प्रभावी कोडिंग
ऋषभ

13

यदि आपको एक ही मान के साथ सरणी तत्वों को वापस करने की आवश्यकता है, तो array_keys()फ़ंक्शन का उपयोग करें

$array = array('red' => 1, 'blue' => 1, 'green' => 2);
print_r(array_keys($array, 1));

11

यहाँ एक और विकल्प है

$array = [1=>'one', 2=>'two', 3=>'there'];
$array = array_flip($array);
echo $array['one']; 

8

array_keys()सभी विशिष्ट कुंजियों की एक सरणी प्राप्त करने के लिए उपयोग करें।

ध्यान दें कि आपके जैसे नामित कुंजी के साथ एक सरणी $arrभी संख्यात्मक सूचकांक के साथ पहुँचा जा सकता है, जैसे $arr[0]

http://php.net/manual/en/function.array-keys.php


4

आप मुख्य नाम पाने के लिए php के मुख्य कार्य का उपयोग कर सकते हैं:

<?php
    $array = array(
    'fruit1' => 'apple',
    'fruit2' => 'orange',
    'fruit3' => 'grape',
    'fruit4' => 'apple',
    'fruit5' => 'apple');

    // this cycle echoes all associative array
    // key where value equals "apple"
    while ($fruit_name = current($array)) {
      if ($fruit_name == 'apple') {
        echo key($array).'<br />';
      }
    next($array);
     }
?>

यहाँ की तरह: PHP: कुंजी - मैनुअल

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.