Метод indexOf
Метод indexOf класса ArrayCollection ищет
указанное значение в коллекции и возвращает его
числовой индекс (ключ). Если элемент не найден,
метод возвращает false. Поиск ведётся
с использованием нестрогого сравнения.
Синтаксис
public function indexOf($element): int|string|false
Пример
Давайте создадим коллекцию и найдём индекс элемента 'b':
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Doctrine\Common\Collections\ArrayCollection;
class ArticleController extends AbstractController
{
public function index(): Response
{
$collection = new ArrayCollection(['a', 'b', 'c', 'd', 'e']);
$res = $collection->indexOf('b');
return new Response((string) $res);
}
}
?>
Результат выполнения кода:
"1"
Пример
Давайте проверим работу метода, когда элемента нет в коллекции:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Doctrine\Common\Collections\ArrayCollection;
class ArticleController extends AbstractController
{
public function index(): Response
{
$collection = new ArrayCollection(['a', 'b', 'c', 'd', 'e']);
$res = $collection->indexOf('z');
return new Response(var_export($res, true));
}
}
?>
Результат выполнения кода:
"false"
Пример
Давайте найдём индекс элемента в ассоциативной коллекции:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Doctrine\Common\Collections\ArrayCollection;
class ArticleController extends AbstractController
{
public function index(): Response
{
$collection = new ArrayCollection([
'first' => 'abcde',
'second' => 'hello',
'third' => 'user',
]);
$res = $collection->indexOf('hello');
return new Response((string) $res);
}
}
?>
Результат выполнения кода:
"second"
Смотрите также
-
класс
ArrayCollection,
который представляет собой коллекцию элементов -
метод
contains,
который проверяет наличие элемента в коллекции -
метод
get,
который возвращает элемент по ключу -
метод
getKeys,
который возвращает все ключи коллекции