NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Mezinárodní den IT společnosti je tady! Pouze nyní můžeš získat 90 % extra kreditů při nákupu od 1199 kreditů s promo kódem AJTACI90. Tak neváhej!
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
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
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í
+2,50 Kč
Ř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: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.