Skip to content
Snippets Groups Projects
Functions.php 1.47 KiB
Newer Older
Адлан Шамавов's avatar
Адлан Шамавов committed
declare(strict_types=1);
Адлан Шамавов's avatar
Адлан Шамавов committed
namespace Hp\Test;
Адлан Шамавов's avatar
Адлан Шамавов committed
class Functions
{
    /**
Адлан Шамавов's avatar
Адлан Шамавов committed
    * Выполняет сортировку массива по убыванию цены
    * @param array $array
    * @return array
    */

    public function sortPrice(array $array): array
    {
        $prices = array_column($array, 'price');
        $counts = array_column($array, 'count');
        array_multisort(
            $prices,
            SORT_DESC,
            $counts,
            SORT_ASC, $array
        );
        return $array;
    }

Адлан Шамавов's avatar
Адлан Шамавов committed
    /**
     * На выход должна вернуть отсортированный массив по ключу *price* DESC
     * и во вторую очередь по *count* ASC:
     * [['price'=>12, 'count'=>4],  ['price'=>10, 'count'=>2],  ['price'=>8, 'count'=>4],
     * ['price'=>8, 'count'=>5],  ['price'=>5, 'count'=>5],]
     */
Адлан Шамавов's avatar
Адлан Шамавов committed
    /**
     * Найдет элемент с указаным id
     * @param array $array - массив, содержащий элементы со структурой
     * [
     *  'id' => 30,
     *  'name' => 'Jhon',
     *  'age' => 23,
     * ]
     * @param $id - ид искомого элемента
     * @return ?array - найденный элемент
     */

    public function search(array $array, int $id): ?array
    {
        $rowId = array_search($id, array_column($array, 'id'), true);
        if ($rowId) {
            return $array[$rowId];
        }
        return null;