В PHP, как найти значение, связанное с конкретным ключом
-
06-07-2019 - |
Вопрос
У меня есть два массива. Один содержит id = > count
, а другой содержит id = > name
. Я пытаюсь создать один массив с именем name = > count
. Какие-нибудь предложения относительно простого способа сделать это?
Я ознакомился с функциями массива в руководстве по PHP и не видел ничего, что выделялось бы как делающее то, что я хочу, поэтому я предполагаю, что мне понадобится комбинация функций, но у меня возникли проблемы с придумыванием чего-то, что не запутано.
Решение
Что-то вроде:
foreach($countA as $id => $count)
{
$newArray[$nameA[$id]] = $count;
}
Предполагается, что ключи соответствуют между двумя массивами, так как в противном случае ваши требования неоднозначны.
Другие советы
Используйте array_combine ...
$countArray = array(0 => 1, 1 => 5);
$namesArray = array(0 => "Bob", 1 => "Alice");
$assocArray = array_combine($namesArray, $countArray);
Правка . Вот пересмотренное решение для новых требований, изложенных в комментарии № 2
$assocArray = array();
foreach($namesArray as $id => $name) {
$assocArray[$name] = (array_key_exists($id, $countArray)) ? $countArray[$id] : 0;
}