Witam!
Mam taki mały... problemik z array_diff.
A więc... mam taki kodzik:
$gry = "Counter strike / Americas army / World of warcraft / Quake 3 arena";
$gry1 = explode('/', $gry);
$n = "Counter strike / Quake 3 arena / Americas army";
$fpp = explode('/', $n);
$gryshow = array_diff($gry1 ,$fpp);
print_r ($gry1);
echo"<br>";
print_r ($fpp);
echo"<br>";
print_r ($gryshow);
efektem czego jest:
Array ( [0] => Counter strike [1] => Americas army [2] => World of warcraft [3] => Quake 3 arena ) Array ( [0] => Counter strike [1] => Quake 3 arena [2] => Americas army ) Array ( [1] => Americas army [2] => World of warcraft [3] => Quake 3 arena )A chodzi mi o coś innego... efekt który chce osiągnąć z łatwością przychodzi gdy w zmiennych $gry1 oraz $fpp tablica jest "ręcznie" wpisana:
$gry1 = array("Counter strike", "Americas army", "World of warcraft", "Quake 3 arena");
$fpp = array("Counter strike", "Quake 3 arena", "Americas army");
$gryshow = array_diff($gry1 ,$fpp);
print_r ($gry1);
echo"<br>";
print_r ($fpp);
echo"<br>";
print_r ($gryshow);
Czego efektem jest:
Array ( [0] => Counter strike [1] => Americas army [2] => World of warcraft [3] => Quake 3 arena ) Array ( [0] => Counter strike [1] => Quake 3 arena [2] => Americas army ) Array ( [2] => World of warcraft )I teraz pytanie... zgodnie z definicją:
array array_diff ( array tablica1, array tablica2 [, array ...] )
array_diff() zwraca tablicę zawierającą wszystkie wartości tablicy tablica1 które nie są obecne w innych tablicach-argumentach. Zauważ, że zachowywane są klucze.
Powinienem otrzymać po array_diff wartość World of warcraft, tak też jest w 2 przypadku... co zaś z pierwszym? Tworzone są tablice... wszystko ładnie tylko nic nie wyodrębnia. Co jest źle? jak to zrobić? cokolwiek byle by działało... tablice muszą pochodzić ze zmiennych ponieważ są pobierane z bazy danych (z 1 komórki), z góry dzięki za cokolwiek :)