Задать вопрос
@GPK1929

Как сравнить 2 массива php?

Помогите сравнить два массива, чета я запутался в трех соснах)))
есть два массива $a и $b
$a=array('1'=>'2','2'=>'2','3'=>'2');
$b=array('1'=>'2','4'=>'2', '1'=>'2');

нужно получить массив $c вида $c=array('1'=>'2, 2, 2', '2'=>'2', '3'=>'2','4'=>'2');
  • Вопрос задан
  • 552 просмотра
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
KorsaR-ZN
@KorsaR-ZN
А немного подумать, не?
Вот нужно Вам решение...

P.S Та операция, что в твоем примере - называется слияние (объединение) массивов.
Если тебе нужно именно сравнить, то приведи корректный пример!

/**
 * PHP 5.4.0+
 *
 * @param $a
 * @param $b
 * @param ...$N
 * @return array
 */
function array_keys_merge($a, $b)
{
    foreach ($b as $key => $value) {

        if(!array_key_exists($key, $a)) {
            $a[$key] = [];
        }

        if (!is_array($a[$key])) {
            $a[$key] = [$a[$key]];
        }

        $a[$key][] = $value;
    }

    if (func_num_args() > 2) {
        
        $args = array_slice(func_get_args(), 2);
        array_unshift($args, $a);

        return call_user_func_array('array_keys_merge', $args);
    } else {
        
        return array_map(function($value) {
            return is_array($value) ? implode(',', $value) : $value;
        }, $a);
    }
}

$a = array('1'=>'2','2'=>'2','3'=>'2');
$b = array('1'=>'2','4'=>'2', '1'=>'2');

$c = array_keys_merge($a, $b, $b, $a, $b);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kompi
@kompi
nullstack devoops
array_merge, а затем array_unique.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы