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

make UniqFilter

parent 4ebf14ce
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
<?php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\HttpFoundation\Request;
use function App\Repository\uniqElements;

class UniqElementsController extends AbstractController
{
    #[Route('/uniq/elements', name: 'app_uniq_elements')]
    public function index(Request $request): Response
    {
        $requestArray = $request->toArray();

        $return = uniqElements($requestArray);

        return new JsonResponse($return, Response::HTTP_OK);
    }
}
+29 −0
Original line number Diff line number Diff line
<?php
namespace App\Repository;
/**
 * Удалить дубликаты, оставив только уникальные значения
 * @param array $array
 * @return array
 */
function uniqElements(array $array): array {
    $splitedArray = [];

    foreach ($array as $tuple) {
        $key = $tuple[0];
        $item = $tuple[1];
        $splitedArray[$key][] = $item;
    }

    $returnableArray = [];
    foreach ($splitedArray as $key => $item){
        $item = array_unique($item);
        foreach ($item as $oneOfItem){
            $returnableArray[] = [
                $key,
                $oneOfItem
            ];
        }
    }

    return $returnableArray;
}