$array1 = array(1=>"Band",2=>"Song", 3=>"Release",4=>"Year"); $array2 = array(1=>"Band"); print_r(array_intersect($array1,$array2));
应为:数组(1=〉“Band”),但我得到的是空数组();
huwehgph1#
@Barmar已经在他的评论中提到了原因。print_r无法显示差异。var_dump显示第一个元素的长度不同。
$array1 = array(1=>"Band",2=>"Song", 3=>"Release",4=>"Year"); $array2 = array(1=>"Band"); var_dump($array1,$array2);
输出:
array(4) { [1]=> string(7) "Band" [2]=> string(4) "Song" [3]=> string(7) "Release" [4]=> string(4) "Year" } array(1) { [1]=> string(4) "Band" }
删除'Band'之前的BOM可以解决此问题。以下行仅删除位于字符串开头的BOM。
$array1[key($array1)] = preg_replace("~^\xef\xbb\xbf~u","",$array1[key($array1)]);
你自己试试看:https://3v4l.org/NYnPG我觉得值得称赞的是,www.example.com的编辑3v4l.org也显示了这种差异。但是,在导入(CSV?)数据时,应始终删除BOM表。
1条答案
按热度按时间huwehgph1#
@Barmar已经在他的评论中提到了原因。print_r无法显示差异。var_dump显示第一个元素的长度不同。
输出:
删除'Band'之前的BOM可以解决此问题。以下行仅删除位于字符串开头的BOM。
你自己试试看:https://3v4l.org/NYnPG
我觉得值得称赞的是,www.example.com的编辑3v4l.org也显示了这种差异。
但是,在导入(CSV?)数据时,应始终删除BOM表。