数组值不相同(但它们是?)

Jim*_*mbo 10 php arrays

我有两个数组.它们似乎至少包含一组完全相同的值,但array_diff()即使我认为应该执行 也不会返回任何内容!这应该只是常规代码,但由于某种原因,它不喜欢我所做的.

奇怪的是var_dump($queue[0]);返回String(167);var_dump($videos[0])返回String(168).

那么显然,它们必须是不同的吗?

echo similar_text($queue[0]), $videos[0]);回报167.什么!?

注意:这些只是文件名,不代表文件的内容.

视频数组

Array ( [0] => /var/www/downloads/j2/Dexter Season 1, 2, 3, 4, 5 & 6 + Extras (Early Cuts, Audiobooks etc) DVDRip HDTV TSV/Season 3/Dexter Season 3 Episode 04 - All in the Family.avi )

队列数组

Array ( [0] => /var/www/downloads/j2/Dexter Season 1, 2, 3, 4, 5 & 6 + Extras (Early Cuts, Audiobooks etc) DVDRip HDTV TSV/Season 3/Dexter Season 3 Episode 04 - All in the Family.avi [1] => j2 )

输出

$diff = array_intersect($queue,$videos); print_r($diff); 回报 Array ( )

var_dump($queue[0]); 回报 string(167) "/var/www/downloads/j2/Dexter Season 1, 2, 3, 4, 5 & 6 + Extras (Early Cuts, Audiobooks etc) DVDRip HDTV TSV/Season 3/Dexter Season 3 Episode 04 - All in the Family.avi"

var_dump($videos[0]); 回报 string(168) "/var/www/downloads/j2/Dexter Season 1, 2, 3, 4, 5 & 6 + Extras (Early Cuts, Audiobooks etc) DVDRip HDTV TSV/Season 3/Dexter Season 3 Episode 04 - All in the Family.avi"

echo similar_text($queue[0], $videos[0]); 回报 167.

我把字符串放入JavaScript字符计数中,我使用strlen(),trim()修剪空格,我甚至单独手动计算每个字符.这是怎么回事?

DCo*_*der 5

使用后将两个字符串转换为十六进制转义表单

var_dump(preg_replace_callback('#.#', function($m) {
  return '\\x' . dechex(ord($m[0]));
}, $input))
Run Code Online (Sandbox Code Playgroud)

,结果字符串如下所示:http://jsfiddle.net/mgaWn/

以该形式查看它们会显示第一个字符串包含5,·6·+·Extras,第二个字符串包含5,·6··+·Extras- 符号前面有一个双重空格+.

HTML折叠空白,这种差异变得完全不可见.在任何输出格式细节(例如字符编码或此HTML空格最小化)妨碍您之前,通常最好将数据与原始格式进行比较.