【问题标题】:PHP Array search only matching fieldsPHP 数组只搜索匹配的字段
【发布时间】:2018-03-02 00:21:02
【问题描述】:

我有以下数组,我只需要一种方法来仅选择第 mnth 值相同的数组。例如,所有第 mnth 值 => 7 的数组。

  Array
(
    [0] => Array
        (
            [desc] => rates
            [mnth] => 7
            [cost] => 8978
        )

    [1] => Array
        (
            [desc] => insurance
            [mnth] => 8
            [cost] => 7680
        )


    [2] => Array
        (
            [desc] => water
            [mnth] => 7
            [cost] => 7800
        )

)

【问题讨论】:

  • 这听起来是一个很大的挑战,你能告诉我们你到目前为止尝试过的代码吗?
  • 根据您的示例输入和迄今为止的最佳编码尝试,向我们展示您的确切预期输出。我敢打赌我的午餐你在这里问了一个重复的问题。您是否在 StackOverflow 上搜索过现有的解决方案?
  • 使用循环和 if 语句
  • echo $array[0]['mnth'];
  • @westnblue 不将问题详细信息添加为 cmets。编辑您的问题并使其完整。

标签: php arrays


【解决方案1】:

如果您需要根据第 mnth 字段将一个大数组拆分为单独的数组,您可以一次性完成。创建一个空的数组数组,遍历您拥有的数组并将它们存储在新的数组数组中,使用第 mn 个值作为键。然后对于新数组中的每个键,您都有一个具有相同 mnth 值的数组。

如果您只需要根据 mnth 上的值进行过滤,您可以使用array_filter,但如果您需要拆分数组,这不是这样做的方法。

$myFilteredArray = array_filter( $myArray, function( $arr ) {
   return $arr['mnth'] == 7; 
});

【讨论】:

    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多