首页 > 解决方案 > 这两个数组有什么区别?

问题描述

我有一个名为“list.txt”的纯文本文件,然后使用 file() 将其内容存储在变量 $array1 中。文本文件包含以下内容:

12088
10118
10182
12525
58162
11821
17533
10118

我还声明了另一个名为 $array2 的数组变量,其内容类似:

$array2 = array(
  '12088',
  '10118',
  '10182',
  '12525',
  '58162',
  '11821',
  '17533',
  '10118'
 );

当我运行这个函数时,它什么也没显示。

$needle = "12088";
if ( in_array($needle, $array1) ) {
 echo 'Found in array1!';
}

但是,当我将其交换为 $array2 时,脚本显示“在 array2 中找到!”。

脚本如下所示:

$array1 = file('list.txt');
$array2 = array(
'12088',
'10118',
'10182',
'12525',
'58162',
'11821',
'17533',
'10118'
 );

$needle = "12088";
 
if ( in_array($needle, $array1) ) {
 echo 'Found in array1!';
}

if ( in_array($needle, $array2) ) {
 echo 'Found in array2!';
}

这两个数组有什么区别导致 $needle 在一个数组中找到,而不是另一个?

标签: phparraysfile

解决方案


不同之处在于您在 list.txt 中显示了 \r\n 符号。

尝试使用$array1 = array_map('trim', $array1)之前

if ( in_array($needle, $array1) ) {
    echo 'Found in array1!';
}

推荐阅读