• ベストアンサー

ファイルについて

ファイルオープンをして、ファイルをロックします。 その後、ファイルのすべての行数を$array[]として、シャッフルして $array[0]の内容を list関数によりばらばらにして、 (list($link_url,$link_img,$Indication_remainder,$ip)=explode("|",$array[0]);) $Indication_remainderが0になった場合、その行を削除してそれ以外を ファイルに書き込みをしたいのですが、 ファイルの行数は変動する為、どうすればいいんでしょうか? ※$Indication_remainderは一度表示する度に数字が一つ減数します。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>表示の際に不具合が出ると思うのですが もちろん、出力の際にはには、取り除く前提ですけど・ 要は、シャッフルされたものを元の順番に戻すために付加しただけのものですから

その他の回答 (2)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

array_randでとって、 array_spliceで削除すればいいような気がします。

参考URL:
http://php.s3.to/man/function.array-rand.html,http://php.s3.to/man/function.array-splice.html
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

$array[]にファイルの一行を読み込む時に(あるいは読み込んだ後に) 1:ファイルの内容 みたいな行番号を付加してやれば、 unset()で該当する行のデータ($array[n])を削除して nnn:の部分を利用して$arrayをソートしてから書き出せば(行番号は取り除いて)いいと思います。

suiku
質問者

補足

行番号は付ける事すると 表示の際に不具合が出ると思うのですが URL|イメージタグ|残り表示回数|最後にアクセスしたIP で保存しているため

関連するQ&A

専門家に質問してみよう