(PHP) Объединение и сравнение массивов

capitan
Дата: 26.08.2006 22:47:08
Подскажите где ошибка? Никак не могу найти.
Мне нужно слить два массива, а потом убрать повторения. Может есть другие варианты?

<?php
for ($i=0; $i<=10; $i++) {
$array1[]="$i";
}

for ($i1=8; $i1<=20; $i1++) {
$array2[]="$i1";
}

$result = array_merge ($array1, $array2);// сливаем массивы
$result3 = array_unique($result);// убираем повторения

for($n=0;$n<count($result3);$n++) {
echo"$result3[$n]<br>";// печать результата
}
?>

Oldwin
Дата: 26.08.2006 22:59:13
capitan
Подскажите где ошибка? Никак не могу найти.
Мне нужно слить два массива, а потом убрать повторения. Может есть другие варианты?

После "убираем повторения" сделай var_dump($result3);
Результат:
array(21) {
  [0]=>
  string(1) "0"
  [1]=>
  string(1) "1"
  [2]=>
  string(1) "2"
  [3]=>
  string(1) "3"
  [4]=>
  string(1) "4"
  [5]=>
  string(1) "5"
  [6]=>
  string(1) "6"
  [7]=>
  string(1) "7"
  [8]=>
  string(1) "8"
  [9]=>
  string(1) "9"
  [10]=>
  string(2) "10"
  [14]=>
  string(2) "11"
  [15]=>
  string(2) "12"
  [16]=>
  string(2) "13"
  [17]=>
  string(2) "14"
  [18]=>
  string(2) "15"
  [19]=>
  string(2) "16"
  [20]=>
  string(2) "17"
  [21]=>
  string(2) "18"
  [22]=>
  string(2) "19"
  [23]=>
  string(2) "20"
}
Т.е. элеменнтов 11, 12 и 13 не существует. Они ж откинулись после array_unique()
Посему последний цикл заменяй на foreach() и всё заработает.
capitan
Дата: 26.08.2006 23:12:27
Спасибо! Я совсем забыл про foreach(). Теперь всё заработало.