首页 > 解决方案 > 如何避免 forech 循环以及我们如何使用数组列

问题描述

我有一个数组,在这个数组中我有列price,现在我想只取价格等于 5 以及大于 5。我知道使用 foreach 循环我们可以实现这一点,还有其他方法可以实现我的预期答案?

$mainArray = [
    "key1" => ["name" => "A", "price" => 5],
    "key2" => ["name" => "B", "price" => 7],
    "key3" => ["name" => "C", "price" => 2],
    "key4" => ["name" => "D", "price" => 9]
];

我的代码

  <?php
$mainArray = [
    "key1" => ["name" => "A", "price" => 5],
    "key2" => ["name" => "B", "price" => 7],
    "key3" => ["name" => "C", "price" => 2],
    "key4" => ["name" => "D", "price" => 9]
];

$maxPrice = 5;
$mainArray = array_filter($mainArray, function($value) {
    return $value['price'] >= $maxPrice;
});


print_r($mainArray);

?>

但我收到错误E_NOTICE : type 8 -- Undefined variable: maxPrice -- at line 11

标签: phpphp-7

解决方案


您可以使用array_filter来检查价格是否等于或大于 5。

<?php
$mainArray = [
    "key1" => ["name" => "A", "price" => 5],
    "key2" => ["name" => "B", "price" => 7],
    "key3" => ["name" => "C", "price" => 2],
    "key4" => ["name" => "D", "price" => 9]
];

$maxPrice = 5;
$mainArray = array_filter($mainArray, function($value) use ($maxPrice) {
    return $value['price'] >= 5;
});


var_dump($mainArray);

推荐阅读