考虑以下场景:您有一个小的 MogoDB 集合或一个小的 MySQL 表(例如包含 1000 条记录,它也可能是只读的),在您的应用程序中被广泛和重复使用。
您决定将其所有内容提取到 PHP 数组并使用该数组,而不是向 DB 发送大量查询。
在上述场景中,我们如何以类似于检索数据库表记录的有效方式检索一些数组项?用于阵列或任何其他类似设施的 PDO 适配器...
有著名的用于 php 的 C# LINQ 库的端口。
它为您提供了灵活的 oo 接口来查询数据源。
http://phplinq.codeplex.com/wikipage?title=Examples&referringTitle=Home
简单的例子
// Create data source
$names = array("John", "Peter", "Joe", "Patrick", "Donald", "Eric");
$result = from('$name')->in($names)
->where('$name => strlen($name) < 5')
->select('$name');
虽然您可以结合使用 array_filter 和 php.net ( http://pl1.php.net/manual/en/function.array-filter.php#87912 )提出的函数 niehztog ,但我相信即使使用少量数据您仍然会发现查询数据库比尝试通过数组处理实现相同的速度更快。
请记住,MySQL 会缓存查询结果——因此您只需使用重复查询而不是磁盘来访问内存。