[英]Php, get key value based on another key/value pair?
如何以 EndDate = 2019-05-31 为例进行搜索并获得对应的 Id 值?
{
"Data": [{
"Id": "xxx",
"StartDate": "2017-06-01",
"EndDate": "2018-05-31"
}, {
"Id": "af7fb21b-3477-4d87-a0dc-3780ef2b39dd",
"StartDate": "2018-06-01",
"EndDate": "2019-05-31"
}]
}
使用 array_column 创建一个包含 "EndDate" => "Id" 对的数组。 如果您的密钥存在,那么您可以直接访问您的 ID。
<?php
$arrayKeyValue = array_column($array['Data'],'Id','EndDate');
echo $arrayKeyValue["2019-05-31"];
//af7fb21b-3477-4d87-a0dc-3780ef2b39dd
EndDate
值。Id
键。代码:
<?php
$index = array_search('2019-05-31',array_column($data['Data'],'EndDate'));
echo $data['Data'][$index]['Id'];
这是不使用特殊数组方法的基本方法。
$json = '[{
"Id": "xxx",
"StartDate": "2017-06-01",
"EndDate": "2018-05-31"
}, {
"Id": "af7fb21b-3477-4d87-a0dc-3780ef2b39dd",
"StartDate": "2018-06-01",
"EndDate": "2019-05-31"
},{
"Id": "af7fb21b-3477-4d87-a0dc-3780ef2b49dd",
"StartDate": "2018-09-12",
"EndDate": "2018-06-30"
}]';
$data = json_decode($json,true);
$enddate = '2019-05-31';
foreach($data as $k => $v){
if($v['EndDate'] == $enddate){
$res[] = array(
'Id' => $v['Id'],
'StartDate' => $v['StartDate'],
'EndDate' => $v['EndDate']
);
}
}
print_r($res[0]['Id']); // af7fb21b-3477-4d87-a0dc-3780ef2b39dd
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.