IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

Diskuze: array_intersect do podmínky

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
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.