Как проверить и заменить данные из массивов?

476
05 февраля 2017, 14:40

Глупый вопрос, сразу говорю еще новичек во всем этом. стоит задача сверить два массива с данными:

    $arr1 = array(
    "1" => 'Пятницкое шоссе',
    "2" => 'Митино',
    "3" => 'Волоколамская',
    "4" => 'Охотный ряд');
   $arr2 = array(
   "4" => 'Охотный ряд',
   "5" => 'Лужники',
   "7" => 'Детский сад №3',
   "29" => 'Алтуфьево',
   "30" => 'Бибирево');

Задача следущая проверить их по названиям и если расходятся в $arr1 заменить ключи.

делал так:

foreach ($arr1 as $id_m => $name_m) {
foreach ($arr2 as $rp_id => $rp_name_m) {
}
if ($rp_name_m != $name_m) {
    $id[] = $rp_id;
}

}

Но получилась (даже сам понял) какая то дичь((( код писать не прошу просто подскажите как делать? ну или что использовать. Заранее благодарю. Добра.

на выходе должно быть так

$arr1 = array( "1" => 'Пятницкое шоссе', "2" => 'Митино' ); 
$arr2 = array( "4" => 'Охотный ряд', "5" => 'Митино' );
$out = array( "1" => 'Пятницкое шоссе', "5" => 'Митино' );
Answer 1

Вам надо использовать array_flip:

$arr1_inverted = array_flip($arr1);
$arr2_inverted = array_flip($arr2);
foreach ($arr_inverted2 as $key => $value) {
 if(array_key_exists($key, $arr1_inverted)) {
  $arr1_inverted[$key] = $value;
  }
 }
$final = array_flip($arr1_inverted);
Answer 2
foreach ($arr1 as $id_m => $name_m) {
  foreach ($arr2 as $rp_id => $rp_name_m) {
    if ($rp_name_m === $name_m) {
      unset($arr1[$id_m]);
      $arr[$rp_id] = $name_m;
      break;
    }
  }
}
READ ALSO
Вопрос по обработчику формы PHP

Вопрос по обработчику формы PHP

Добрый вечер, У обработчика 2 формы, обработчик отправляет 2 сообщения на emailНо эти 2 сообщения нужны только при отправке из одной формы в которой...

444
Yii2 3 таблицы и 2 ActiveRecord

Yii2 3 таблицы и 2 ActiveRecord

Доброго времени суток

510
Не работает отправка E-mail на php

Не работает отправка E-mail на php

Не работает оправка E-mail'а на phpХостинг беру тут от hostinger

430
Добавить/показать комментарий к посту в блоге на PHP/MySql?

Добавить/показать комментарий к посту в блоге на PHP/MySql?

Здравствуйте! Учу php, делаю блог, пытаюсь связать комментарии к постамТо есть, сделать так, чтоб каждый комментарий был связан со своим постом

564