【发布时间】: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导入数据时,它解决了这个问题。非常感谢,我浪费了这么多时间,我应该请教专家