【问题标题】:Can't retrive value of first element of array [duplicate]无法检索数组第一个元素的值[重复]
【发布时间】:2020-12-31 10:49:04
【问题描述】:

我在 PHP 中有一个名为 $team 的数组,如下所示:

array(22) { ["league_name"]=> string(28) "1.súdánská liga 2020/2021" ["league_id"]=> string(6) "173720" ["sport_id"]=> string(3) "301" ["team_id"]=> string(6) "743616" ["team_name"]=> string(16) "Al Ahli Khartoum" ["display_name_long"]=> string(16) "Al Ahli Khartoum" ["display_name_short"]=> string(16) "Al Ahli Khartoum" ["when_added"]=> string(19) "31.12.2020 11:36:25" ["LV_team"]=> string(1) "." ["PZ_team"]=> string(1) "." ["Bc_team"]=> string(1) "." ["Bc_team_id"]=> string(1) "." ["Su_team"]=> string(1) "." ["Su_team_id"]=> string(1) "." ["To_team"]=> string(1) "." ["To_id"]=> string(1) "." ["LS_team"]=> string(1) "." ["LS_id"]=> string(1) "." ["eW_team"]=> string(1) "." ["eW_id"]=> string(1) "." ["bX_team"]=> string(1) "." ["bX_id"]=> string(1) "." }

我可以回显该表中的任何元素,例如:

echo $team['team_id'] 获取“743616”

但我不能使用echo $team['league_name'] 获得“1.súdánská liga 2020/2021”

我收到错误:未定义的索引:xxx.php 中第 xxx 行的联盟名称。这不是我第一次遇到数组中第一个元素的问题。 数组由 csv 文件组成(不知道是否需要该信息)。

【问题讨论】:

  • 键 League_name 的开头有一个 Unicode BOM。如果您将其从您的问题复制到显示特殊字符的编辑器中,您会看到它:3v4l.org/dkOQP。请注意输出如何显示该字符串的长度为 14 个字符 - 11 个用于league_name,加上 3 个用于 BOM。您需要将其从 CSV 文件中删除,或者在导入过程中将其删除。
  • 所以问题和你描述的完全一样,我用了这个 fseek($handle, 3);从csv导入数据时,它解决了这个问题。非常感谢,我浪费了这么多时间,我应该请教专家

标签: php arrays


【解决方案1】:

你检查过 UTF8 吗?可能是特殊字符导致了问题。

【讨论】:

  • 我在其他列中也有特殊字符,它正在工作。主要我不明白的是为什么错误消息说未定义索引,而在 var_dump 我们可以清楚地看到它存在。
  • 我在其他列中没有看到特殊字符为“à”,请尝试将其删除并重试
  • 你看不到,因为我在这里展示的只是 1 行更大的数组。但我将其更改为 ["league_name"]=> string(13) "Sudan/1.Sudan" 仍然显示相同的错误 "Undefined index: League_name in ..."
猜你喜欢
  • 1970-01-01
  • 2013-12-29
  • 1970-01-01
  • 2018-04-06
  • 2021-03-14
  • 2019-03-09
  • 2016-07-27
  • 2020-02-28
  • 1970-01-01
相关资源
最近更新 更多