提问人:user1793646 提问时间:11/11/2014 更新时间:11/11/2014 访问量:784
PHP Array_combine未定义索引
PHP Array_combine undefined index
问:
我想将两个数组组合在一起,一个作为键,另一个作为数据。
但是,当我阵列时,我看到键上添加了一个神秘的空间。即使我采用完全不同的数组,空格似乎也会在 .print_r
array_combine
此外,如果我尝试通过在键上添加空格来访问数组元素,我仍然收到错误。Undefined offset: 200
这是我的代码:
$codes = file('H_codes.txt');
$sentences = file('H_sentences.txt');
$H_sentences_combined = array_combine($codes,$sentences);
echo $H_sentences_combined['200'];
我从两个文本文件中检索数组:H_codes.txt
200
201
202
...
并且文件采用相同的格式(即没有内联空格,只有下一行空格)$H_sentences
"Zeer licht ontvlambare aerosol."
"Ontvlambare aerosol."
"Zeer licht ontvlambare vloeistof en damp."
...
这是print_r($H_sentences_combined)
Array ( [200 ] => "Instabiele ontplofbare stof." [201 ] => "Ontplofbare stof: gevaar voor massa-explosie." [202 ] => "Ontplofbare stof, ernstig gevaar voor scherfwerking." ...)
我真的不知道出了什么问题。
任何帮助都是值得赞赏的! 谢谢。
答:
2赞
Buggabill
11/11/2014
#1
该额外字符是换行符。file
将这些添加到它读入数组的每一行中。
像这样更改文件调用以删除那些额外的新行字符:
$codes = file('H_codes.txt', FILE_IGNORE_NEW_LINES);
$sentences = file('H_sentences.txt', FILE_IGNORE_NEW_LINES);
$H_sentences_combined = array_combine($codes,$sentences);
0赞
Nathan
11/11/2014
#2
索引后面的字符实际上不是空格,而是换行符(或两行)。基本上,在文本文件中,每行末尾都是\n或\r\n。要在插入之前删除这些,只需使用 PHP 中内置的 trim($content) 函数,它将删除字符串左右两侧的所有空格。例如 会回来trim(' hello world! ')
'hello world!'
下一个:未定义索引:图像
评论
trim()