В PHP, как найти значение, связанное с конкретным ключом

StackOverflow https://stackoverflow.com/questions/187515

  •  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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top