配列から空の要素を削除するスクリプトを作成しようとしています。
ただし、空の要素は [0] スロットにあるため、値を設定解除すると、配列全体が削除されます。少なくともそれが起こっていると思いますが、なぜこれが機能しないのですか?
<?php
$idfile = file_get_contents("datafile.dat");
$idArray = explode("\n", $idfile);
print_r($idArray);
foreach ($idArray as $key => &$value) {
echo "Key is: ".$key." and value is: ".$value."<br />\n";
if ($value == ""){
echo "Killing value of ".$value."<br />";
unset($value[$key]);
}
$value = str_replace("\n", "", $value);
$value = str_replace("\r", "", $value);
$value = $value.".dat";
}
print_r($idArray);
?>
出力は次のとおりです。
Array
(
[0] =>
[1] => test1
[2] => test2
)
Key is: 0 and value is: <br>
Killing value of <br>