3

次のシナリオを検討してください: アプリで広範囲かつ繰り返し使用される小さな MogoDB コレクションまたは小さな MySQL テーブル (たとえば、1000 レコードを含み、読み取り専用の場合もあります) があります。

DB に大量のクエリを送信する代わりに、すべてのコンテンツを PHP 配列にフェッチし、その配列を使用することにしました。

上記のシナリオで、DB テーブルのレコードを効率的に取得するのと同様の方法で配列項目を取得するにはどうすればよいでしょうか? 配列用の PDO アダプターまたはその他の同様の機能 ...

4

2 に答える 2

2

有名な C# LINQ ライブラリの php への移植があります。

データソースをクエリするための柔軟な oo インターフェイスを提供します。

http://phplinq.codeplex.com/wikipage?title=例&referringTitle=ホーム

簡単な例

// Create data source
$names = array("John", "Peter", "Joe", "Patrick", "Donald", "Eric"); 

$result = from('$name')->in($names)
            ->where('$name => strlen($name) < 5')
            ->select('$name'); 
于 2013-01-13T10:31:26.607 に答える
1

array_filter と php.net ( http://pl1.php.net/manual/en/function.array-filter.php#87912 ) で提案されている関数 niehztog の組み合わせを使用できますが、少量の配列処理で同じことを達成しようとするよりも、db をクエリする方が高速であることが引き続きわかります。

MySQL はクエリ結果をキャッシュすることに注意してください。そのため、ディスクではなく、クエリを繰り返してメモリにアクセスするだけです。

于 2013-01-13T10:23:55.853 に答える