За последние 24 часа нас посетили 21565 программистов и 1388 роботов. Сейчас ищут 657 программистов ...

Слияние массивов

Тема в разделе "PHP для новичков", создана пользователем GoSou, 27 окт 2018.

  1. GoSou

    GoSou Новичок

    С нами с:
    6 май 2017
    Сообщения:
    37
    Симпатии:
    3
    Чуть ранее тут была похожая тема об объединении массивов. Но там другая задача и я не увидел для себя нужного решения.
    Итак, есть два массива:
    Код (Javascript):
    1. Array
    2. (
    3.     [0] => red
    4.     [1] => yellow
    5.     [4] => green
    6. )
    Код (Javascript):
    1. Array
    2. (
    3.     [0] => красный
    4.     [1] => жёлтый
    5.     [4] => зелёный
    6. )
    Как видим, в первом массиве значения цветов указаны по-английски, во втором – по-русски, ключи у них идентичны. Требуется получить массив такого вида:
    Код (Javascript):
    1. Array
    2. (
    3.     [0] => red, красный
    4.     [1] => yellow, жёлтый
    5.     [4] => green, зелёный
    6. )
    P.S. В многочисленных примерах преимущественно приводятся объединение второго массива в конец первого с различными вариациями выборки значений. Но это совсем не то.

    P.P.S. Убедительная просьба к опытным программистам: будьте добры, не кидайтесь тапками, испорченными овощами и куриными яйцами с истёкшим сроком годности – это для нас лишняя потеря времени, лучше укажите правильный путь для поиска верного решения.
     
  2. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Правильный путь тут один и я уже о нём говорил. Надо читать книги и как можно больше. И дело даже не в том, что вы не можете написать элементарный код, дело в том, что прочитав пару книг вы поймёте, что и объединять то скорее всего ничего не нужно.
    PHP:
    1. <?php
    2.   foreach ($arr1 as $key=>$value){
    3.     $new[$key] = (isset($arr2[$key])) ? $value.', '.$arr2[$key] : $value ;
    4.   }
     
  3. GoSou

    GoSou Новичок

    С нами с:
    6 май 2017
    Сообщения:
    37
    Симпатии:
    3
    @Valick, спасибо Вам за код – к нему я вернусь чуть позже, а пока немного (самую малость) грустной лирики. Я отредактировал Ваше сообщение и привёл его к тому виду, каким по сути оно и должно быть. В следующий раз (если Ваш ответ будет в том же духе) я редактировать уже ничего не буду и в ответку получите нелицеприятный комментарий.
    Итак, ниже Ваш отредактированный ответ:

    =======================================
    Скорее всего, и объединять-то ничего не нужно.
    PHP:
    1. <?php
    2.   foreach ($arr1 as $key=>$value){
    3.     $new[$key] = (isset($arr2[$key])) ? $value.', '.$arr2[$key] : $value ;
    4.   }
    =======================================

    Код работает исправно, за что Вам спасибо. Ни в имеющейся литературе, ни в Интернете ничего подобного я не встречал. Зато бесчисленное множество раз приводятся примеры слияния второго массива в конец первого с различными вариациями выборки значений.
    Честно говоря, не совсем точно понимаю как он работает. Объясните, пожалуйста, подробно принцип работы строки:
    PHP:
    1. $new[$key] = (isset($arr2[$key])) ? $value.', '.$arr2[$key] : $value ;
     
  4. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @GoSou, скорее всего это мой последний комментарий в ваш адрес, а вы и дальше редактируйте, что и как хотите. Удачи.
     
  5. GoSou

    GoSou Новичок

    С нами с:
    6 май 2017
    Сообщения:
    37
    Симпатии:
    3
    Ну и чудненько. Редактировать буду всё, что посчитаю нужным с целью смягчения тона в диалоге и/или исправления грубых грамматических ошибок. Кстати: Ваши сообщения с точки зрения грамматики написаны на высоком уровне и это весьма похвально, чего нельзя сказать о многих-многих пользователях Интернета (включая и данный форум), в текстах которых ошибка на ошибке и ошибкой погоняет).
    В завершение: и Вам удачи...
     
  6. GoSou

    GoSou Новичок

    С нами с:
    6 май 2017
    Сообщения:
    37
    Симпатии:
    3
    На других Интернет-ресурсах почитал различные статьи, но я всё же разобрался с кодом без Ваших разъяснений, хотя это и заняло чуть больше времени, чем если бы Вы сразу же объяснили что к чему. Теперь я знаю принцип его работы и, невзирая ни на что, ещё раз искренне благодарю Вас за помощь.