Skip to content

Instantly share code, notes, and snippets.

@pvaviloff
Last active October 23, 2019 17:38
Show Gist options
  • Save pvaviloff/94e630298004f27c46aa2c01a2321958 to your computer and use it in GitHub Desktop.
Save pvaviloff/94e630298004f27c46aa2c01a2321958 to your computer and use it in GitHub Desktop.
  1. Что выведет var_dump($a); и var_dump((int)$a);? Почему? (php all versions)
$a = floatval((0.1 + 0.7) * 10);
var_dump($a);
var_dump((int)$a);
  1. Необходимо рекурсивно округлить дробное до целого Пример: 0.44449 => 0.4445 => 0.445 => 0.45 => 0.5 => 1
  2. Есть таблица test в mySql 5.6:
|id   |value    |
-----------------
|1    |foo      |
|2    |bar      |

Что выведет запрос SELECT count(*) FROM `test` LIMIT 1;

  1. Необходимо рекурсивно привести массив, в котором находятся адреса категорий, к виду:
[“категория” =>[
  “подкатегория” => [
    “подкатегория подкатегории” => []
    ]
  ]
]

Массив:

 $arr = [
 	902  => '001010002',
    905  => '001010005',
    1193 => '001011002',
    1193 => '002011002',
    1196 => '001011005',
    1198 => '001011007',
    1198 => '002011007',
    1211 => '001010006001',
    1409 => '001011002001',
    3602 => '001012003',
    3606 => '001010003009',
];

К виду:

[
            '001' => [
                '001010' => [
                    '001010002' => [],
                    '001010005' => [],
                    '001010006' => [
                        '001010006001' => [],
                    ],
                    '001010003' => [
                        '001010003009' => [],
                    ],
                ],
                '001011' => [
                    '001011005' => [],
                    '001011002' => [
                        '001011002001' => [],
                    ],
                ],
                '001012' => [
                    '001012003' => [],
                ],
            ],
            '002' => [
                '002011' => [
                    '002011002' => [],
                    '002011007' => [],
                ],
            ],
        ]

Номер категорий состоит из трехзначных чисел.

  1. Удалить все ссылки из первого массива которые попадают под паттерн из второго массива, используя только один цикл.
$files = [
    '/usr/share/nginx/wordpress/wp-content/plugins/myplugin.php',
    '/usr/share/nginx/wordpress/wp-content/themes/index.php',
    '/usr/share/nginx/wordpress/wp-content/themes/mytheme.php',
    '/usr/share/nginx/wordpress/wp-content/plugins/akismet.php',
    '/usr/share/nginx/wordpress/wp-content/uploads/november.jpg',
    '/usr/share/nginx/wordpress/wp-content/uploads/sdf.jpg',
    '/usr/share/nginx/wordpress/wp-content/uploads/sdf.jpg',
];
$exclude = [
    '/usr/share/nginx/wordpress/wp-content/plugins/myplugin.php',
    '/usr/share/nginx/wordpress/wp-content/uploads',
    'mytheme.php',
];
  1. Что выведет данный скрипт? (Tested: php 7.0.33, php 7.1.20):
<?php
$datetime1 = new \DateTime('June 2019');
$datetime2 = new \DateTime('July 2019');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%m');
  1. Есть таблица test в mySql. value имеет тип VARCHAR:
|id   |value    |
-----------------
|1    |foo      |
|2    |bar      |
|3    |0foo     |
|4    |bar0     |

Что вернет запрос SELECT * FROM `test` WHERE `value` = 0;?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment