簡體   English   中英

按給定值返回數組鍵(給定月以返回日期)

[英]Return array key by value given (month given to return a date)

我有一個帶鍵的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

如何做到這一點的最佳方法? 謝謝。

您可以通過以下簡單方式進行操作:-

<?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

您可以按照以下步驟簡單地進行操作。 我稍微修改一下代碼。

<?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/>";
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM