无法按键获取数组元素,但键存在于数组中

问题描述 投票:0回答:2

我正在使用Drupal 8,但由于这对我来说看起来像PHP问题,我在这里问它而不是在Drupal Answers上。

以下代码中的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() output其他数组元素... var_dump() output其他数组元素......

原始输出HTML:https://codepen.io/anon/pen/ZwRJdR

数组键:

var_dump( array_keys($field_storage_definitions));

屏幕输出:array keys

我有点无能为什么isset($field_storage_definitions[$specifier]FALSE$field_storage_definitions[$specifier]NULL

我卸载了APC并禁用了Opcache。

php drupal-8 drupal-fields
2个回答
1
投票

在字符串末尾有一个right to left mark用于选择数组键。由于字符串和数组键不相同,因此无法检索数组键。

可以使用删除从左到右的标记

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

https://stackoverflow.com/a/23131396/6653862

您可以使用查看字符串是否包含不可见字符

json_encode($string)

-3
投票

如果我是你,我会试试这个:

$true_Array = (Array)$array_With_Object;
© www.soinside.com 2019 - 2024. All rights reserved.