2011-12-17 3 views
2

または、私は別の何か間違っているかもしれません。array_unshiftの後にarray_uniqueが動作しないのはなぜですか?

<?php 
$date = "2011-12-31|12-31"; 

$fileData = file('something.txt'); // Get file contents as array 
print_r($fileData); 
echo "<br /><br />"; 

array_unshift($fileData, $date); // Add date to [0] 
print_r($fileData); 
echo "<br /><br />"; 

$cleanData = array_unique($fileData); // remove dupes 
print_r($cleanData); 
echo "<br /><br />"; 
?> 

プリントアウト:ここ

Array ([0] => 2011-12-31|12-31 [1] => 2011-12-30|12-30 [2] => 2011-12-29|12-29) 

Array ([0] => 2011-12-31|12-31 [1] => 2011-12-31|12-31 [2] => 2011-12-30|12-30 [3] => 2011-12-29|12-29) 

Array ([0] => 2011-12-31|12-31 [1] => 2011-12-31|12-31 [2] => 2011-12-30|12-30 [3] => 2011-12-29|12-29) 

something.txtです:

2011-12-31|12-31 
2011-12-30|12-30 
2011-12-29|12-29 

私は$fileDataにEOLまたはLFマーカーがあるかもしれないと思われます。このような場合は、簡単に削除できますか?

答えて

3

file()によって返された配列内の文字列は、末尾に改行文字があり、そうでない文字列と等しくありません。あなたは第二パラメータとしてFILE_IGNORE_NEW_LINESを追加することにより、これらの文字を含まないようにfile()を伝えることができます。

file('something.txt', FILE_IGNORE_NEW_LINES); 
+2

あなたのユーザ 'のvar_dump()'とブラウザのソース表示機能(というより、 '場合、それは問題のこれらの種類を発見する方が簡単ですprint_r()はHTMLとして表示されます)。 –

関連する問題