私はディレクトリからファイルを集めて配列に格納する関数を持っています。PHPで同じ機能と効率を再利用
function getFiles($folder){
$ignore = array("index.php",".","..","favicon.gif","favicon.ico",".DS_Store");
$gottenFiles = array();
if ($handle = opendir($folder)) {
while (false !== ($file = readdir($handle))) {
if (in_array($file, $ignore)){
//do nothing
}else{
array_push($gottenFiles, $file);
}
}
closedir($handle);
}
return $gottenFiles;
}
私が頭を包んでいる問題は、効率の問題です。 私は毎回getFiles("folder");
を実行します。これは、アレイを再アセンブリする全プロセスを実行します。私は、静的変数と処理条件なしで、少しずつ手を加えました。変数$filesArray = getFiles("folder");
の中の関数を呼び出して、再利用$filesArray
を使用する方が良いでしょうか。
彼らは一度アレイを設定し、opendirを続行しないのですか?
私は上記の機能に変更できますか? (//何も条件なし?)
ありがとうございます!
かなりクール。 $ cache [$ folder]はどのように機能しますか?私はあなたが配列のスロットを参照するためにそこに数値を入れることしかできないと思った。 – ThomasReggi
文字列と整数を配列のキーとして使用することもできます。 $ arr = array(0 => 'a'、 'test' => 'b');働く'a'を得るには$ arr [0]を使います。 'b'を得るには:$ arr ['test']。私たちの場合、$ folderは文字列なので、他の文字列のように動作します。配列に関するすべての情報を得ることができます(ドキュメント内)(http://www.php.net/manual/en/language.types.array.php) –