Сравните два массива, используйте ключ из массива два, чтобы найти значение из массива один

#php #arrays

#php #массивы

Вопрос:

У меня есть два массива,

Массив один:

 $amount = array(0 => 11, 1 => 22, 2 => 33);
  

Массив два:

 $id = array(1 => 1);
  

Я хотел бы получить такой результат, сравнивая:

 result = array(1 => 22);
  

Я пытался сделать это с помощью нескольких функций PHP, но мой мозг теперь растаял.

Надеюсь, что там есть какая-то помощь.

Ответ №1:

Хотя ваш вопрос немного расплывчатый, я думаю, вам нужен array_intersect_key,

 $common = array_intersect_key($amount,$id);
  

ДЕМОНСТРАЦИЯ.

Комментарии:

1. Спасибо. Я уже использовал array_intersect() раньше, но спасибо 🙂

Ответ №2:

Если я вас правильно понял, вы хотите перебрать ключи в $id и получить соответствующие $amount в массив?

 $result = array();
foreach($id as $key => $value) {
    if(isset($amount[$key])) {
        $result[$key] = $amount[$key];
    }
    else {
        // handle situation where
        // $amount doesn't have that key
    }
}
  

Ответ №3:

 $array=array();
 foreach($id as $key=>$val){
 if(array_key_exists($key,$amount)){
   $array[$key] = $amount[$key];
 };
}

print_r($array);
  

ДЕМОНСТРАЦИЯ