php - 这两个数组有什么区别?
问题描述
我有一个名为“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 在一个数组中找到,而不是另一个?
解决方案
不同之处在于您在 list.txt 中显示了 \r\n 符号。
尝试使用$array1 = array_map('trim', $array1)
之前
if ( in_array($needle, $array1) ) {
echo 'Found in array1!';
}
推荐阅读
- exists - 在创建之前如何检查我的数据是否已经存在于我的数据库中?
- css - rails 6中scss文件的正确后缀是什么
- javascript - 在 React 中预加载数据
- javascript - 为什么 2 ** (1 << 31) == 0?
- c++ - 在 C++ 智能指针实现中调用“运算符 T()”
- html - Flexbox 不适用于页面响应
- html - 如何使 html 页面显示文件而不是下载文件?
- ruby - 为什么将传递给方法的字符串文字更改为参数之一?
- amazon-web-services - 在 ssh 上使用 pipenv 命令的问题
- swift - 如何在swiftUI中以高性能显示来自Observable Object的数据?