Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[PHP] Wynik zwracany przez funkcjię array_diff

kolin12345 24 Mar 2017 16:38 516 4
  • #1 24 Mar 2017 16:38
    kolin12345
    Poziom 7  

    Witam, posiadam 2 podobne dynamiczne tablice różniące się 4 wartościami: 4415, 4416,4417 i 4418. Chciałem użyć porównania przy pomocy funkcji array_diff(i innych) jednak zamiast wyniku w formie:

    Kod: php
    Zaloguj się, aby zobaczyć kod

    otrzymuje zsumowane tablice.

    Zgodnie z dokumentacją funkcja powinna zwracać w tablicy 1 wartości które nie są obecne w żadnej innej tablicy.
    Proszę o wyjaśnienie jeżeli się mylę lub źle interpretuje.


    Tablice buduje w podany niżej sposób:
    Kod: php
    Zaloguj się, aby zobaczyć kod


    Wynik (jest dokładnie taki sam jak zawartość $array_1):
    Kod: text
    Zaloguj się, aby zobaczyć kod


    A tak wygląda $array_2
    Kod: text
    Zaloguj się, aby zobaczyć kod

    1 4
  • #3 27 Mar 2017 09:36
    kolin12345
    Poziom 7  

    Dzięki za odpowiedź dałem jakoś radę.
    Był problem z typami danych. Dane wyjściowe otrzymywały typ "string" więc możliwe, że były źle interpretowane przez funkcje. W samej pętli wykonałem konwersję na "integer" :

    Kod: php
    Zaloguj się, aby zobaczyć kod
    i ruszyło.

    0
  • Pomocny post
    #4 27 Mar 2017 11:04
    Dżyszla
    Poziom 42  

    Dziwne, bo to nie powinno mieć znaczenia... Definicja mówi, że funkcja szuka elementów w pierwszej, które nie występują w drugiej i kolejnych. Typ nie powinien wpływać.

    No ale dobrze, że napisałeś. :) Niemniej, i tak bym radził jednak użyć zapytania - mniej przekazywanych danych i sumarycznie powinno być mniejsze obciążenie, chyba że serwer bazodanowy jest mniej wydajny od tego z PHP.

    0
  • #5 27 Mar 2017 11:11
    kolin12345
    Poziom 7  

    Ta zgodnie z definicją nie powinno mieć, ale jednak coś było na rzeczy, że zadziałało. Pewnie skończę na rozwiązaniu z bazą danych, miałem je wcześniej zaimplementowane, ale chciałem sprawdzić jak będzie to wyglądać od strony PHP. Dzięki za pomoc i temat do zamknięcia :)

    0