Внимание! Сайт не обновлялся более 3х лет!
Перейти в портфолио компании

Главная

13.05.2013

У меня часто возникает необходимость что-либо уникализировать. К примеру вам в руки попала база email'ов, количество которых свыше 100 000 штук. Ясное дело, руками уникализировать 100 тысяч email'ов невозможно.

08.05.2013

Как передавать массивы в $_GET и $_POST запросах? Часто возникает необходимость, да и в принципе это разумно передавать не набор параметров а массив, или несколько массивов, это очень удобно и просто. Но как правило веб-разработчики со стажем более одного года не умеют эффективно этим пользоваться.

18.04.2012

Пришло время сотворить нечто новое и никому ненужное :D Хотя, вероятно, любителям извращаться/шифровать/**ать_мозг это может пригодиться. В этом посту могу позволить себе любые нецензурные фразы, раз уж я развиваю тему BrainFuck, что в дословном переводе на русский, звучит примерно как "**ать Мозг".

    public static function sup($type, $id, $sub_ids = null, $options = []){
        if ($options['clear'] !== false){
            App::get()->db->delete(self::TABLE, array(
                'type' => $type,
                'id' => $id
            ));
        }
        if (!$sub_ids || !is_array($sub_ids))
            return false;

        foreach ($sub_ids as $sub_id){
            App::get()->db->insert(self::TABLE, array(
                'type' => $type,
                'id' => $id,
                'sub-id' => $sub_id
            ));
        }
        return true;
    }

    public static function get($type, $id, $subId = null, $justTheseSubIds = false){
        if ($subId){
            $data = App::get()->db
                ->from(self::TABLE)
                ->select(['id', 'sub-id'])
                ->where(array_filter(array(
                    'type' => $type,
                    'id' => val($id),
                    'sub-id' => $subId
                )))->fetchAll();
            if ($justTheseSubIds){
                $dataById = [];
                $resultIds = [];
                if ($data){
                    sort($subId);
                    foreach ($data as $v){
                        $dataById[$v['id']][] = $v['sub-id'];
                    }
                    foreach ($dataById as $_id => $_sub_ids){
                        sort($dataById[$_id]);
                        if ($dataById[$_id] == $subId){
                            $resultIds[] = $_id;
                        }
                    }
                }
                return $resultIds;
            }
            return array_unique(utily::array_of_array_values($data, 'id'));
        }