Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zwracanie różnicy pomiędzy tablicami zawierającymi obiekty za pomocą array_udiff()
Forum PHP.pl > Forum > PHP
Ultear
Witam,

Mam 2 tablice, a mianowicie:

http://pastebin.com/4w7y5mtf - Tablica ze wszystkimi uprawnieniami

http://pastebin.com/3HUg2LwL - Tablica z uprawnieniami użytkownika

To co chcę osiągnąć to tablice zawierającą wszystkie uprawnienia z wyjątkiem rekordów, które użytkownik już posiada, np.

$array1 = [1,2,3,6,7]
$array2 = [2,7]

$array1 - $array2 = [1,3,6]


  1. $unusedPerms = array_udiff($perms->toArray(), $role->permissions->toArray(), function ($array1, $array2) {
  2. return $array1['id'] === $array2['id'] ? 0 : -1;
  3. });


Niestety to powyżej nie chce działać na moich tablicach, proszę o pomoc. Z góry dziękuję smile.gif
Pyton_000
array_column('id') + array_diff

Bo z tego co pokazałeś to Twoje "obiekty" to tablice smile.gif
prz3kus
  1. $array1 = [1,2,3,6,7];
  2. $array2 = [2,7];
  3.  
  4. $wow = array_diff($array1,$array2);
  5.  
  6. print_r($wow);
Ultear
Czyli to będzie:

  1. $unusedPerms = array_diff(array_column($perms->toArray(), 'id'), array_column($role->permissions->toArray(), 'id'));


Tak?
Pyton_000
coś w ten deseń smile.gif
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.