Есть к примеру массивы:
$one = array (2, 8 , 14 , 7 , 11, 9);
$two = array (18, 2, 6, 8, 13, 19);
Как сделать один с повторными элементами 2, 8 без двойного цикла?
1. frost18 - 08 Июля, 2011 - 11:39:26 - перейти к сообщению
2. EuGen - 08 Июля, 2011 - 11:40:10 - перейти к сообщению
3. DeepVarvar - 08 Июля, 2011 - 12:51:52 - перейти к сообщению
А так не сработает: $arr = $arr1 + $arr2; ???
4. EuGen - 08 Июля, 2011 - 12:57:44 - перейти к сообщению
Нет. Это вообще не удовлетворяет условию задачи. Сложение даст Вам простое слияние, тогда как автору требуется пересечение.
5. DeepVarvar - 08 Июля, 2011 - 13:13:54 - перейти к сообщению
Значит я неверно понял задачу.
А именно ответ на то как я её понял, лежит тут: array_merge
А именно ответ на то как я её понял, лежит тут: array_merge
6. Мелкий - 08 Июля, 2011 - 13:24:32 - перейти к сообщению
EuGen пишет:
Сложение даст Вам простое слияние, тогда как автору требуется пересечение.
А можно уточнить, действительно ли даст, и на какой версии. У меня не получилось сложить массивы, в результате остался только первый.
7. EuGen - 08 Июля, 2011 - 13:36:20 - перейти к сообщению
Оператор + всегда ведет себя так, что сливает значения по ключам. Пример:
Результат:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- 0 => int 1
- 1 => string 'test' (length=4)
- 2 => int 4
- 0 => int 1
- 1 => string 'test' (length=4)
- 2 => int 4
- 'fruits' => string 'banana, cherry' (length=14)
- 'cars' => string 'audi, bmw' (length=9)
- 0 => int 1
- 1 => string 'test' (length=4)
- 2 => int 4
- 'cars' => string 'audi, bmw' (length=9)
Так как у первого и второго массива ключи одинаковые (численные: 0,1,2), то остались только значения первого.
Во втором случае ключи разные - вот и остались ключи (и, стало быть, значения) обоих массивов
В третьем случае значения числового ключа второго массива не сохранилось - этот числовой индекс присутствует в первом.
Строго говоря, + - это оператор объединения, а не слияния.
http://www.php.net/manual/en/lan...rators.array.php
Для понимания проще помнить, что массивы из "только значений" имеют тем не менее числовые индексы.