- ベストアンサー
ファイルについて
ファイルオープンをして、ファイルをロックします。 その後、ファイルのすべての行数を$array[]として、シャッフルして $array[0]の内容を list関数によりばらばらにして、 (list($link_url,$link_img,$Indication_remainder,$ip)=explode("|",$array[0]);) $Indication_remainderが0になった場合、その行を削除してそれ以外を ファイルに書き込みをしたいのですが、 ファイルの行数は変動する為、どうすればいいんでしょうか? ※$Indication_remainderは一度表示する度に数字が一つ減数します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>表示の際に不具合が出ると思うのですが もちろん、出力の際にはには、取り除く前提ですけど・ 要は、シャッフルされたものを元の順番に戻すために付加しただけのものですから
その他の回答 (2)
- moon_night
- ベストアンサー率32% (598/1831)
回答No.2
array_randでとって、 array_spliceで削除すればいいような気がします。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.1
$array[]にファイルの一行を読み込む時に(あるいは読み込んだ後に) 1:ファイルの内容 みたいな行番号を付加してやれば、 unset()で該当する行のデータ($array[n])を削除して nnn:の部分を利用して$arrayをソートしてから書き出せば(行番号は取り除いて)いいと思います。
補足
行番号は付ける事すると 表示の際に不具合が出ると思うのですが URL|イメージタグ|残り表示回数|最後にアクセスしたIP で保存しているため