Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Porównanie zawartości n-tablic
karolmm
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 16.10.2012

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


Witam,

w pętli wykonuję selecta. Wynik obrabiam i docelowo zapisuję. W rezultacie mam n-tablic lub jedną tablicę z n-tablicami w środku. Każda z nich ma jednakową budowę, tj. [0]=>string(2) "12", [1]=>string(2) "17" .... [n]=>string[1] "6" .... I teraz potrzebuję porównać wszystkie tablice i znaleźć element, który występuje w każdej z nich.

Proszę o pomoc, w jaki sposób można to zrobić. Próbowałem z array_intersect ale nie działa do końca dobrze [porównuje każdą tablicę do poprzednika].

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kalipek
post
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 13
Dołączył: 3.02.2011

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


na szybko

  1.  
  2. $mainArr = [[["product_id"=>10]], [["product_id"=>2],["product_id"=>3],["product_id"=>5],["product_id"=>10]], [["product_id"=>10],["product_id"=>8],["product_id"=>9],["product_id"=>3],["product_id"=>5],["product_id"=>6]], [["product_id"=>7],["product_id"=>5],["product_id"=>10]]];
  3.  
  4. $mainArrSize = count($mainArr);
  5.  
  6. $inAll = [];
  7. foreach($mainArr as $arr)
  8. {
  9. foreach($arr as $item)
  10. {
  11. $count = 0;
  12. foreach($mainArr as $arr2)
  13. {
  14. if(in_array($item, $arr2))
  15. $count = $count + 1;
  16. }
  17.  
  18. if($mainArrSize == $count && !in_array($item, $inAll))
  19. $inAll[] = $item;
  20. }
  21. }
  22.  
  23. print_r($inAll);
  24.  
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 03:07