Метод slice класса ArrayCollection
Метод slice класса ArrayCollection
возвращает новый массив, содержащий
указанную часть элементов исходной коллекции.
Первым параметром передаётся смещение (индекс,
с которого начинать выборку), вторым - количество
элементов для выборки. Если второй параметр
опущен, выборка идёт до конца коллекции.
Метод не изменяет исходную коллекцию.
Синтаксис
$collection->slice(int $offset, ?int $length = null)
Пример
Давайте получим первые три элемента коллекции:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use DoctrineCommonCollectionsArrayCollection;
class ArticleController extends AbstractController
{
public function index(): Response
{
$collection = new ArrayCollection(['a', 'b', 'c', 'd', 'e']);
$res = $collection->slice(0, 3);
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
["a", "b", "c"]
Пример
Давайте получим все элементы, начиная со второго:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use DoctrineCommonCollectionsArrayCollection;
class ArticleController extends AbstractController
{
public function index(): Response
{
$collection = new ArrayCollection(['a', 'b', 'c', 'd', 'e']);
$res = $collection->slice(1);
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
["b", "c", "d", "e"]
Пример
Давайте получим два элемента, начиная с третьего:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use DoctrineCommonCollectionsArrayCollection;
class ArticleController extends AbstractController
{
public function index(): Response
{
$collection = new ArrayCollection(['a', 'b', 'c', 'd', 'e']);
$res = $collection->slice(2, 2);
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
["c", "d"]
Пример
Давайте убедимся, что исходная коллекция не меняется:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use DoctrineCommonCollectionsArrayCollection;
class ArticleController extends AbstractController
{
public function index(): Response
{
$collection = new ArrayCollection(['a', 'b', 'c', 'd', 'e']);
$res = $collection->slice(1, 2);
return new Response(json_encode([
'slice' => $res,
'original' => $collection->toArray()
]));
}
}
?>
Результат выполнения кода:
{"slice":["b","c"],"original":["a","b","c","d","e"]}
Смотрите также
-
класс
ArrayCollection,
который представляет собой коллекцию элементов -
метод
first,
который возвращает первый элемент коллекции -
метод
last,
который возвращает последний элемент коллекции -
метод
filter,
который фильтрует элементы коллекции