php实现筛选
PHP 实现数据筛选的方法
使用数组函数筛选
PHP 提供了多种数组函数用于数据筛选。array_filter 是最常用的筛选函数,它接受一个数组和一个回调函数,返回满足条件的元素。
$numbers = [1, 2, 3, 4, 5, 6];
$evenNumbers = array_filter($numbers, function($num) {
return $num % 2 === 0;
});
自定义筛选条件
可以定义更复杂的筛选条件。例如筛选出价格大于 100 且库存充足的商品。

$products = [
['name' => 'A', 'price' => 99, 'stock' => 10],
['name' => 'B', 'price' => 150, 'stock' => 5],
['name' => 'C', 'price' => 200, 'stock' => 0]
];
$filteredProducts = array_filter($products, function($product) {
return $product['price'] > 100 && $product['stock'] > 0;
});
数据库查询筛选
从数据库检索数据时,直接在 SQL 查询中添加 WHERE 条件是最有效的方式。

$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
$stmt = $pdo->prepare("SELECT * FROM products WHERE price > :price AND stock > 0");
$stmt->execute([':price' => 100]);
$filteredProducts = $stmt->fetchAll();
使用 Laravel 的查询构建器
在 Laravel 框架中,可以使用 Eloquent 提供的便捷方法进行数据筛选。
$products = Product::where('price', '>', 100)
->where('stock', '>', 0)
->get();
多条件动态筛选
对于需要根据用户输入动态构建筛选条件的情况,可以灵活组合条件。
$filters = [
'min_price' => 100,
'max_price' => 500,
'category' => 'electronics'
];
$query = Product::query();
if (isset($filters['min_price'])) {
$query->where('price', '>=', $filters['min_price']);
}
if (isset($filters['max_price'])) {
$query->where('price', '<=', $filters['max_price']);
}
if (isset($filters['category'])) {
$query->where('category', $filters['category']);
}
$results = $query->get();






