PHP声明定义的数组索引未定义
我有一个脚本声称我的一些数组索引没有定义,我就是不明白为什么 下面是一个最小的测试用例:PHP声明定义的数组索引未定义,php,arrays,Php,Arrays,我有一个脚本声称我的一些数组索引没有定义,我就是不明白为什么 下面是一个最小的测试用例: <?php // Define the two-dimensional array $lg = [ "aapg-datapages" => [ "lgid" => "3148425", "lgname" => "AAPG Datapages", ], "abstracts-of-international-conservat
<?php
// Define the two-dimensional array
$lg = [
"aapg-datapages" => [
"lgid" => "3148425",
"lgname" => "AAPG Datapages",
],
"abstracts-of-international-conservation-literature" => [
"lgid" => "3148426",
"lgname" => "AATA online: Abstracts of International Conservation Literature",
],
"academic-search-complete" => [
"lgid" => "48083863",
"lgname" => "Academic Search Complete",
],
];
// Dump just the first entry.
var_dump($lg['aapg-datapages']);
print "\n";
// Print the ID of the first entry.
print $lg['aapg-datapages']['lgid'];
print "\n";
// Print out all the names.
foreach($lg as $db => $properties){
print $properties['lgname']."\n";
}
print "\n";
// Print out all the IDs.
foreach($lg as $db => $properties){
print $properties['lgid']."\n";
}
我已经为此挣扎了好几个小时了。当我在数组中转储一个条目时,它会同时看到lgid和lgname。但是,如果我尝试访问lgid,它会抛出一个未定义的索引错误,即使它可以使用完全相同的代码获得lgname
是的,这是一个多维数组,但我很确定我没有指向数组的错误级别
我想,我曾尝试将lgid重命名为其他glerp,但没有效果。我认为PHP并不关心您使用哪种约定作为行尾,但为了以防万一,我尝试了\n和\r\n
我在两个不同的环境中尝试过它:Ubuntu 18.04.4上的PHP7.2.24和Red Hat Enterprise Linux 7.8 Maipo上的PHP7.3.17,在这两个环境中都有相同的结果
在某一点上,我的测试数组中的第一个条目开始工作,而另外两个条目继续读取为未定义。不幸的是,我不知道我是怎么做到的。这三个条目在我的测试文件中看起来完全相同,只是其中一个有效,另外两个无效
我错过了什么明显的东西吗?我是否在PHP中引发了一些奇怪的bug?我只是不知道还能尝试什么。你似乎有一些看不见的角色:
$lg = [
"aapg-datapages" => [
"<feff>lgid" => "3148425",
"lgname" => "AAPG Datapages",
],
"abstracts-of-international-conservation-literature" => [
"<feff>lgid" => "3148426",
"lgname" => "AATA online: Abstracts of International Conservation Literature",
],
"academic-search-complete" => [
"<feff>lgid" => "48083863",
"lgname" => "Academic Search Complete",
],
];
作为输出该死的费夫。UTF-16 BOM的剩余部分可能来自windows unicode文件。很好的发现。哦,看在爱的份上。。。啊。我从中提取这些记录的API必须在东西上粘贴字节顺序标记。多痛苦啊。我甚至知道这些,以前也遇到过——它们通常出现在文件的开头,而不是混合到数据中。非常感谢你!
$lg = [
"aapg-datapages" => [
"<feff>lgid" => "3148425",
"lgname" => "AAPG Datapages",
],
"abstracts-of-international-conservation-literature" => [
"<feff>lgid" => "3148426",
"lgname" => "AATA online: Abstracts of International Conservation Literature",
],
"academic-search-complete" => [
"<feff>lgid" => "48083863",
"lgname" => "Academic Search Complete",
],
];
array(2) {
["lgid"]=>
string(7) "3148425"
["lgname"]=>
string(14) "AAPG Datapages"
}
3148425
AAPG Datapages
AATA online: Abstracts of International Conservation Literature
Academic Search Complete
3148425
3148426
48083863