PHP - неопределенный массив индексов, когда я использую var для индекса

Я получаю странную ошибку, когда пытаюсь получить доступ к значению массива с помощью ключа.

Это массив, который у меня есть:

array:4 [▼
  10 => "mr"
  20 => "ms"
  30 => "mrs"
  40 => "dr"
]

Когда я пытаюсь

echo $titles[$user->title]

Я получаю ошибку неопределенный индекс ($ user-> title может иметь одно из 4 значений из ключей массива)

Когда я, например, пытаюсь

echo $titles[10]

Я получаю Мистер. И когда я повторяю $ user-> title, я получаю 10. Кто-нибудь знает, что здесь происходит?

Что дает var_dump($user->title);?

jeroen 31.05.2018 10:56

Убедитесь, что $user->title - это '10'. Я подозреваю, что он содержит некоторые символы пробела (пробелы, новые строки и т. д.).

axiac 31.05.2018 10:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поскольку такой тест вернул мне правильные значения:

$titles = [
  10 => "mr",
  20 => "ms",
  30 => "mrs",
  40 => "dr"
];

echo $titles[10];
echo "\n";
echo $titles['10'];
echo "\n";

Могу только догадываться, что у Вас есть пробелы или невидимые символы в атрибуте title.

Fix - это просто приведение типа, которое преобразует его в целое число:

echo $titles[(int)$user->title]

Другие вопросы по теме