मेरे पास निम्न सरणी (नीचे सरणी) है और मैं उप-सरणी के मूल्य की कुंजी प्राप्त करने की कोशिश कर रहा हूं।

$array = array(
  'USD' => array (
      0 => 1.79,
      1 => 3.58,
      2 => 5.37,
      3 => 7.16,
      4 => 8.95,
    ),
  'CAD' =>  array (
      0 => 2.49,
      1 => 4.98,
      2 => 7.47,
      3 => 9.96,
      4 => 12.45,
    ),
  'EUR' =>  array (
      0 => 1.99,
      1 => 3.98,
      2 => 5.97,
      3 => 7.96,
      4 => 9.95,
    )
);  
$item_to_get = array_search(5.97, $array);

मौजूदा उत्पादन

false

अपेक्षित परिणाम => मूल कुंजी नाम

EUR
1
Ady 28 नवम्बर 2015, 18:11

2 जवाब

सबसे बढ़िया उत्तर

array_search फ़ंक्शन पुनरावर्ती नहीं है, इसलिए आपको सरणी पर पुनरावृति करना होगा और सबरेज़ में खोजना होगा:

$foundInParent = false;
foreach($array as $parentKey => $subArray) {
  if (array_search(5.97, $subArray)) {
    $foundInParent = $parentKey;
    break;
  }
}

echo $foundInParent;

बस इसे एक समारोह में लपेटो ..

2
webdeb 28 नवम्बर 2015, 15:18

यह array_search() काम करने का तरीका नहीं है - यहाँ देखें: http : //php.net/manual/en/function.array-search.php

आपको शायद कस्टम कॉलबैक फ़ंक्शन के साथ array_walk() की आवश्यकता है। या बाहरी सरणी पर पुनरावृति करने के लिए foreach() का उपयोग करें, फिर array_search() फॉरच-लूप के अंदर।

मैं किसी भी मामले में, मैं पहली जगह में अलग से सरणी स्थापित करने की सलाह देता हूं!

0
Thomas Landauer 28 नवम्बर 2015, 15:17