Невозможно получить элемент массива по ключу, но ключ существует в массиве

Я работаю с Drupal 8, но так как это выглядит для меня проблемой PHP, я спрашиваю об этом здесь, а не о Drupal.

isset оператор в следующем коде должен вернуть TRUE, но это не так:

/*
$specifier = 'field_google_hire_identifier‎'
$field_storage_definitions = array of objects
*/

var_dump(
isset($field_storage_definitions[$specifier]),
$specifier,
$field_storage_definitions[$specifier],
$field_storage_definitions
);
die;

Вывод на экран:
вывод var_dump ()
Другие элементы массива …
вывод var_dump ()
Другие элементы массива …

Исходный вывод HTML: https://codepen.io/anon/pen/ZwRJdR

Клавиши массива:

var_dump( array_keys($field_storage_definitions));

Вывод на экран:
ключи массива

Я немного не понимаю, почему isset($field_storage_definitions[$specifier] является FALSE а также $field_storage_definitions[$specifier] является NULL

Я удалил APC и отключил Opcache.

0

Решение

Был знак справа налево в конце строки, которая использовалась для выбора ключа массива. Поскольку строка и ключ массива не совпадают, ключ массива не может быть получен.

Метка слева направо может быть удалена с помощью

preg_replace('/\p{C}+/u', "", $string)

Увидеть https://stackoverflow.com/a/23131396/6653862

Вы можете проверить, содержит ли строка невидимые символы, используя

json_encode($string)
1

Другие решения

На вашем месте я бы попробовал это:

$true_Array = (Array)$array_With_Object;
-3

По вопросам рекламы [email protected]