Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zwracanie różnicy pomiędzy tablicami zawierającymi obiekty za pomocą array_udiff()
Ultear
post 14.07.2015, 12:00:35
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 3
Dołączył: 9.12.2013

Ostrzeżenie: (0%)
-----


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

Ten post edytował Ultear 14.07.2015, 12:03:19
Go to the top of the page
+Quote Post
Pyton_000
post 14.07.2015, 12:13:08
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


array_column('id') + array_diff

Bo z tego co pokazałeś to Twoje "obiekty" to tablice smile.gif
Go to the top of the page
+Quote Post
prz3kus
post 14.07.2015, 12:16:10
Post #3





Grupa: Zarejestrowani
Postów: 260
Pomógł: 30
Dołączył: 22.01.2007

Ostrzeżenie: (0%)
-----


  1. $array1 = [1,2,3,6,7];
  2. $array2 = [2,7];
  3.  
  4. $wow = array_diff($array1,$array2);
  5.  
  6. print_r($wow);
Go to the top of the page
+Quote Post
Ultear
post 14.07.2015, 12:17:21
Post #4





Grupa: Zarejestrowani
Postów: 52
Pomógł: 3
Dołączył: 9.12.2013

Ostrzeżenie: (0%)
-----


Czyli to będzie:

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


Tak?
Go to the top of the page
+Quote Post
Pyton_000
post 14.07.2015, 12:18:41
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


coś w ten deseń smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 07:42