@cocov
Начинающий php

Как получить значение ключа в массиве php?

У меня есть массив:
array(3) {
  ["usd"]=>
  array(1) {
    [0]=>
    int(852)
  }
  ["eur"]=>
  array(3) {
    [0]=>
    int(502)
    [1]=>
    int(909)
    [2]=>
    int(504)
  }
  ["asia"]=>
  array(2) {
    [0]=>
    int(1213)
    [1]=>
    int(649)
  }
}

Подскажите как получить значение ключа ["usd"] если мне известно что число 852?
  • Вопрос задан
  • 310 просмотров
Пригласить эксперта
Ответы на вопрос 2
Immortal_pony
@Immortal_pony Куратор тега PHP
В вашем случае может быть несколько валют, у которых в наборе присутствует одинаковое значение.
Чтобы найти все варианты, можете воспользоваться такой функцией:
function findCurrenciesByValue(array $data, $value) {
    $currencies = [];
    
    foreach ($data as $currency=>$currencyValues) {
        if (in_array($value, $currencyValues)) {
            $currencies[] = $currency;
        }
    }
    
    return $currencies;
}


Если же вариативностью можно пренебречь и подойдет первая найденная валюта по значению, то ее можно найти с помощью этой функции:
function findFirstCurrencyByValue(array $data, $value) {
    $currencies = findCurrenciesByValue($data, $value);
    
    if (empty($currencies)) {
        return null;
    } else {
        return $currencies[0];
    }
}


... или так (без использования функции для нахождения всех валют):
function findFirstCurrencyByValue(array $data, $value) {
    $firstCurrency = null;
    
    foreach ($data as $currency=>$currencyValues) {
        if (in_array($value, $currencyValues)) {
            $firstCurrency = $currency;
            break;
        }
    }
    
    return $firstCurrency;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы