Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Swiftu. Zároveň využij výhodnou slevovou akci až 30 % zdarma při nákupu e-learningu - více informací.
discount 30 + hiring

Diskuze: array_intersect do podmínky

Aktivity
Avatar
Martin Suchodol
Tvůrce
Avatar
Martin Suchodol:19.1.2020 11:57

Ahoj potřebuji použít array_intersect jako podmínku a napadla mě celkem dvě řešení

1) (bool) array_intersect($array1, $array2);

2) count(array_intersect($array1, $array2) > 0);

Potažmo

3) count(array_intersect($array1, $array2) !== 0);

Další varianta je použití in_array(). Ale tam jde použít jen porovnání jednoho parametru. Ale k tomu co bymně zajímalo zda je ideální to použít takto, nebo zda existuje nějaký lepší způsob

 
Odpovědět
19.1.2020 11:57
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:19.1.2020 22:26

A nebylo by jednodussi to udelat sql dotazem? Prijde mi, ze ty data mas nejspis z databaze.
Jinak si myslim, ze je to ok.
array_intersect podle dokumentace vraci vzdy array. Jine funkce pri chybe vraci ale false.

 
Nahoru Odpovědět
19.1.2020 22:26
Avatar
Martin Suchodol
Tvůrce
Avatar
Odpovídá na Peter Mlich
Martin Suchodol:19.1.2020 23:55

No kód je součástí autorizace uživatele napříč systémem. Jedná se o systém oprávnění kdy se ne vždy porovnávají stejná data a ne úplně vím jak něco takového udělat na úrovni SQL.

 
Nahoru Odpovědět
19.1.2020 23:55
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:20.1.2020 7:39

google = array intersect mysql
https://www.techonthenet.com/…ntersect.php

SELECT category_id
FROM products
WHERE category_id < 100
INTERSECT
SELECT category_id
FROM inventory
WHERE quantity > 0;

--

SELECT products.category_id
FROM products
WHERE products.category_id < 100
AND products.category_id IN
   (SELECT inventory.category_id
    FROM inventory
    WHERE inventory.quantity > 0);
Editováno 20.1.2020 7:39
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
20.1.2020 7:39
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:20.1.2020 7:41
SELECT contacts.contact_id, contacts.last_name, contacts.first_name
FROM contacts
WHERE contacts.contact_id < 100
AND EXISTS (SELECT *
            FROM customers
            WHERE customers.last_name <> 'Johnson'
            AND customers.customer_id = contacts.contact_id
            AND customers.last_name = contacts.last_name
            AND customers.first_name = contacts.first_name);
 
Nahoru Odpovědět
20.1.2020 7:41
Avatar
Martin Suchodol
Tvůrce
Avatar
Martin Suchodol:20.1.2020 10:05

Jo já to hledal pod něčím jiným. Budu se na to sql muset více zaměřit. Každopádně díky

 
Nahoru Odpovědět
20.1.2020 10:05
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.