Commit d237271c authored by Александр Плохих's avatar Александр Плохих 🌔
Browse files

Merge branch 'main' into 'PTPS|Function_5'

# Conflicts:
#   public/public/index.php
parents 07e4bcb2 16c9bc58
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
<?php

namespace App\Actions;

class SortPriceAction
{
    /**
     * Выполняет сортировку массива по убыванию цены
     * @param array $array
     * @return array отсортированный
     */
    public static function sort(array $array)
    {
        $priceColumn = array_column($array, "price");
        $countColumn = array_column($array, "count");

        array_multisort(
            $priceColumn,
            SORT_DESC,
            $countColumn,
            SORT_ASC,
            $array
        );

        return $array;
    }
}
+23 −0
Original line number Diff line number Diff line
@@ -8,6 +8,29 @@ namespace App\TestData;

class TestData
{
    public const PRICE_COUNT_ARRAY = [
        [
            'price' => 4,
            'count' => 2,
        ],
        [
            'price' => 4,
            'count' => 1,
        ],
        [
            'price' => 2,
            'count' => 10,
        ],
        [
            'price' => 1,
            'count' => 4,
        ],
        [
            'price' => 3,
            'count' => 4,
        ],
    ];

    public const RAW_MENU = [
        [
            'name' => 'Смартфоны и гаджеты',
+5 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
require_once __DIR__ . '/../vendor/autoload.php';

use App\Actions\HowDaysToNYAction;
use App\Actions\SortPriceAction;
use App\Actions\IdSearchAction;
use App\Actions\PrepareMenuAction;
use App\TestData\TestData;
@@ -11,6 +12,10 @@ echo 'HowDaysToNYAction: <br>';
echo "Дней до нового года (в днях): ". HowDaysToNYAction::count(new DateTimeImmutable());
echo '<hr>';

echo 'SortPriceAction: <br>';
var_dump(SortPriceAction::sort(TestData::PRICE_COUNT_ARRAY));
echo '<hr>';

echo 'PrepareMenuAction: <br>';
var_dump(PrepareMenuAction::prepare(TestData::RAW_MENU));
echo '<hr>';