Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] porównywanie tablic
Forum PHP.pl > Forum > PHP
KirkoR
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
[manual:c51ffd5d6a]array_merge[/manual:c51ffd5d6a] + [manual:c51ffd5d6a]array_unique[/manual:c51ffd5d6a]

Pozdro
Cudi
Ja bym jednak skorzystał z [manual:992362f0c9]array_diff()[/manual:992362f0c9] smile.gif
cichy
nie doczytałęm że nie chodzi o połączenie tylko zwrócenie różnic tongue.gif

Pozdro
KirkoR
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] questionmark.gif
Cudi
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,
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.