[英]What is the difference between these two arrays?
我有一個名為“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!';
}
您需要先將文件轉換為數組。 您可以使用str_getcsv
,如下所示:
參考: str_getcsv
$file = file_get_contents('test.txt');
// Separator set as new line "\n"
$array = str_getcsv($file, "\n");
var_dump($array);
// Output
array:8 [▼
0 => "12088"
1 => "10118"
2 => "10182"
3 => "12525"
4 => "58162"
5 => "11821"
6 => "17533"
7 => "10118"
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.