这是我的文件spectrum_info.txt
:
raid,spectrum/raid_info.txt
rbid,spectrum/rbid_info.txt
rcid,spectrum/rcid_info.txt
rdid,spectrum/rdid_info.txt
reid,spectrum/reid_info.txt
使用以下代码
加载此文件数据时$s_types=file('spectrum/spectrum_info.txt');
$i=0;
foreach($s_types as $s_type)
{
$s_arrfields = explode(',', $s_type);
$s_names[] = $s_arrfields[0];
$sf_names[] = $s_arrfields[1];
}
我将上述文件中的file_names
信息放入$sf_names
数组中。
手动我创建了另一个具有相同数据的数组:
$f_temp=array("spectrum/raid_info.txt",
"spectrum/rbid_info.txt",
"spectrum/rcid_info.txt",
"spectrum/rdid_info.txt",
"spectrum/reid_info.txt",
"spectrum/rfid_info.txt",
"spectrum/rgid_info.txt",
"spectrum/rhid_info.txt");
print_r($f_temp);
echo"<br/>";
print_r($sf_names);
echo"<br/>";
$result=array_diff($f_temp,$sf_names);
print_r($result);
两个阵列都有相同的数据。仍然array_diff()
显示所有数组元素不同。
我尝试这个是因为,当我使用$sf_names
文件信息从该特定文件中读取数据时,我收到以下错误。
警告:文件(spectrum / raid_info.txt):无法打开流:参数无效
关于如何更改从等于手动创建的数组的文件中加载的数据,请帮助我array_diff()
。它可以用于解决上述错误。感谢。
答案 0 :(得分:0)
默认情况下,file()
返回的值包含每行末尾的换行符。 FILE_IGNORE_NEW_LINES
标志可用于从每个值中删除换行符。
$s_types = file('spectrum/spectrum_info.txt', FILE_IGNORE_NEW_LINES);