【问题标题】:Return array key by value given (month given to return a date)按给定值返回数组键(给定月份以返回日期)
【发布时间】:2016-08-24 05:36:32
【问题描述】:

我有一个带键的 PHP 多维数组,下面的数组有日期。

Array (
    [123] => Array
    (
       [one] => 2016-01-22 10:32:15
       [two] => 2016-02-21 14:24:15
       [three] => 2016-02-12 11:00:15
    )

    [553] => Array
    (
       [one] => 2016-03-22 10:32:15
       [two] => 2016-02-21 14:24:15
       [three] => 2016-08-12 11:00:15
    )

)

我需要按月拿到钥匙。示例:

$value = '2016-02';

return 123 -> 2
return 552 -> 1

实现这一目标的最佳方法是什么? 谢谢。

【问题讨论】:

  • 如果 $value = '2016-02';那么输出将是:- 123 -> 二和 123 -> 三和 552 -> 二?你不认为这会被输出吗?交叉检查一次
  • @Anant 是的,我将使用这些值来计算。最后,我只需要计算具有给定月份日期的主键。
  • 只使用一个 foreach 和一个 if

标签: php arrays datetime multidimensional-array


【解决方案1】:

你可以像下面这样简单地做:-

<?php

$array = Array (
    '123' => Array
    (
       'one' => '2016-01-22 10:32:15',
       'two' => '2016-02-21 14:24:15',
       'three' => '2016-02-12 11:00:15'
    ),
    '553' => Array
    (
       'one' => '2016-03-22 10:32:15',
       'two' => '2016-02-21 14:24:15',
       'three' => '2016-08-12 11:00:15'
    )
);

$value = '2016-02';
$final_data = array();
foreach ($array as $key=> $arr){
  foreach($arr as $key1=>$val){
    if(strpos($val,$value)!==false){
       $final_data[$key][]=$key1;
    }
  }
}

echo "<pre/>";print_r($final_data);

输出:-https://eval.in/627935

或者这个也有用:-

https://eval.in/627936

【讨论】:

    【解决方案2】:

    您可以简单地按照以下方式进行操作。我稍微修改一下代码。

    <?php
    $date = Array (
    123 => Array
    (
       "2016-01-22 10:32:15",
       "2016-02-21 14:24:15",
       "2016-02-12 11:00:15"
    ),
    553 => Array
    (
       "2016-03-22 10:32:15",
       "2016-02-21 14:24:15",
       "2016-08-12 11:00:15"
    )
    );
    $givenDate = "2016-02";
    $givenMonth = explode("-",$givenDate)[1];
    
    foreach ($date as $key => $value){
        foreach ($value as $k => $v){
            $d = explode(" ", $v);
            $d = explode("-", $d[0]);
            if($d[1] ==$givenMonth ){
                echo $key."=>".$k."<br/>";
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-09-02
      • 1970-01-01
      • 2011-01-12
      • 2015-01-08
      • 2013-02-10
      • 1970-01-01
      • 2020-09-09
      • 2019-07-24
      • 2015-04-25
      相关资源
      最近更新 更多