KirkoR
17.03.2004, 18:23:23
Witam. Chodzi mi onatępującą rzecz:
Mam dwie tablice:
[php:1:13d1f54240]<?php
$tbl_1[] = 1;
$tbl_1[] = 2;
$tbl_1[] = 3;
$tbl_1[] = 4;
$tbl_1[] = 5;
?>[/php:1:13d1f54240]
i
[php:1:13d1f54240]<?php
$tbl_2[] = 1;
$tbl_2[] = 4;
$tbl_2[] = 6;
$tbl_2[] = 23;
$tbl_2[] = 32;
$tbl_2[] = 10;
$tbl_2[] = 8;
?>[/php:1:13d1f54240]
Chcę porównać ze sobą. Aby z tablicy $tbl_2 zostały usunięte wszystkie liczby, które są w $tbl_1
Jak to zrobić? Prosiłbym jeśli to możliwe o gotowy przykład skryptu.
cichy
17.03.2004, 18:32:23
[manual:c51ffd5d6a]array_merge[/manual:c51ffd5d6a] + [manual:c51ffd5d6a]array_unique[/manual:c51ffd5d6a]
Pozdro
Cudi
17.03.2004, 18:33:21
Ja bym jednak skorzystał z [manual:992362f0c9]array_diff()[/manual:992362f0c9]
cichy
17.03.2004, 18:39:04
nie doczytałęm że nie chodzi o połączenie tylko zwrócenie różnic
Pozdro
KirkoR
17.03.2004, 21:41:21
Porównuję tablice za pomocą array_diff:
[php:1:46128132b6]<?php
Array_1
(
[0] => 2
[1] => 3
[2] => 4
[3] => 7
[4] => 8
[5] => 29
[6] => 30
)
Array_2
(
[0] => 2
[1] => 3
[2] =>
)
?>[/php:1:46128132b6]
Otrzymuję taki wynik:
[php:1:46128132b6]<?php
Array_3
(
[2] => 4
[3] => 7
[4] => 8
[5] => 29
[6] => 30
)
?>[/php:1:46128132b6]
Ale jak zrobić aby Array_3 zaczynała się od [0]
Cudi
18.03.2004, 17:49:06
Troche sie tym pobawiłem, wkońcu zdecydowałem się na użycie funkcji [manual:d1ca79c6c4]array_values()[/manual:d1ca79c6c4]:
[php:1:d1ca79c6c4]<?php
<pre>
<?php
$Array_1 = array
(
2,
3,
4,
7,
8,
29,
30,
);
$Array_2 = array
(
2,
3,
);
print_r( array_values( array_diff( $Array_1, $Array_2 ) ) );
?>
</pre>
?>[/php:1:d1ca79c6c4]
Innego rozwiązania nie udało mi się znaleźć, może funkcja [manual:d1ca79c6c4]array_diff_uassoc()[/manual:d1ca79c6c4] dała by identyczny rezultat, niestety narazie jest ona CVS only,