Слияние и массив по значению вместо ключа в PHP - PullRequest
1 голос
/ 11 сентября 2009

У меня есть два массива значений, которые я хотел бы объединить, но, похоже, единственные методы, которые предоставляет PHP, объединяются по ключу вместо значения. Вот хак, который я смог использовать, чтобы заставить это работать, но мне интересно, есть ли лучший метод или нативная функция, которую я пропустил. Прошло довольно много времени с тех пор, как я последний раз использовал массивы, и, похоже, на это есть простой ответ.

//Input arrays that we want to combine into one array
$array = array(2, 3, 4, 5);
$array2 = array(5, 6, 1);

//Flip values and keys
$array = array_flip($array);
$array2 = array_flip($array2);

//Combine array
$array3 = $array2 + $array;

//flip array keys back to values
$array3 = array_keys($array3);

//Optional sort
sort($array3);

print_r($array3);

Возвращает объединенные значения двух массивов:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)

1 Ответ

4 голосов
/ 12 сентября 2009

Не совсем уверен, что вы пытаетесь достичь. Я предполагаю, что вы пытаетесь объединить 2 массива без дубликатов. Если это так, то следующее будет работать

$newarr = array_unique(array_merge($array, $array2));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...