我的阵列是
Array
(
[0] => Array
(
[week_startDate] => 2019-02-01
[week_endDate] => 2019-02-03
)
[1] => Array
(
[week_startDate] => 2019-02-04
[week_endDate] => 2019-02-10
)
[2] => Array
(
[week_startDate] => 2019-02-11
[week_endDate] => 2019-02-17
)
[3] => Array
(
[week_startDate] => 2019-02-18
[week_endDate] => 2019-02-24
)
[4] => Array
(
[week_startDate] => 2019-02-25
[week_endDate] => 2019-02-28
)
)
我想在匹配week_startDate时获取week_endDate的键值。 假设我的week_startDate是
案例1的期望值: week_startDate是数组中的2019-02-01匹配项,然后我想返回2019-02-03
case2期望值: week_startDate是数组中的2019-02-18匹配项,然后我想返回2019-02-24
是否可以使用数组函数或其他任何方式?
答案 0 :(得分:2)
您可以在week_startDate
列上使用array_search
(使用array_column
提取)来找到该值的键,然后使用该键返回week_endDate
:
$startDate = '2019-02-01';
$k = array_search($startDate, array_column($array, 'week_startDate'));
if ($k !== false) {
$endDate = $array[$k]['week_endDate'];
}
else {
echo "$startDate not found!";
}
答案 1 :(得分:1)
$expectedDate = '2019-02-11';
foreach($arr as $key => $val){
if($expectedDate ==$val['week_startDate']){
return $val['week_endDate'];
}
}
另一种解决方案
$startDate = '2019-02-01';
$k = array_search($startDate, array_column($array, 'week_startDate'));
if ($k !== false) {
echo $array[$k]['week_endDate'];
}
答案 2 :(得分:1)
你在这里
$search_on_me = array(
array(
'week_startDate' => '2019-02-01',
'week_endDate' => '2019-02-03'
),
array(
'week_startDate' => '2019-02-04',
'week_endDate' => '2019-02-10'
),
array(
'week_startDate' => '2019-02-11',
'week_endDate' => '2019-02-17'
)
);
$key = array_search('2019-02-01', array_column($search_on_me, 'week_startDate'));
echo "week_endDate of 2019-02-01: ".$search_on_me[$key]['week_endDate'];
答案 3 :(得分:0)
是的,您可以执行以下操作。但是不确定要哪个。因此,您可以检查以下内容:
foreach ($array as $arr) {
if(array_key_exists('week_startDate', $arr)){
return $arr["week_endDate"];
}
}
或者您可以检查以下内容:
foreach ($array as $arr) {
if($arr["week_startDate"] == "2019-02-01"){
return $arr["week_endDate"];
}
}
答案 4 :(得分:0)
$array = [
[
'week_startDate' => '2019-02-01',
'week_endDate' => '2019-02-03'
], [
'week_startDate' => '2019-02-04',
'week_endDate' => '2019-02-10'
], [
'week_startDate' => '2019-02-11',
'week_endDate' => '2019-02-17'
], [
'week_startDate' => '2019-02-18',
'week_endDate' => '2019-02-24'
], [
'week_startDate' => '2019-02-25',
'week_endDate' => '2019-02-28'
]
];
要获取密钥:
$key = array_search('2019-02-01', array_column($array, 'week_startDate'));
要获取值:
$value = $array[$key]['week_endDate'];
答案 5 :(得分:0)
您可以使用array_column获取开始日期的数组。
$startDates = array_column($your_array, 'week_startDate');
包含您的$ needle日期的项目的密钥可以通过array_search找到。
$key = array_search($needle, $startDates);
如果未找到$ needle,则array_search的返回值可以为false。确保检查它是否为0或false!
if ($key !== false) {
$endDate = $your_array[$key]['week_endDate'];
}
答案 6 :(得分:0)
我正在使用数组指针来指向每个元素
reset($myarray);
while ($curr = current($myarray))
{
$key = key($myarray); // Get key of pointing array
if ( ( $curr['week_startDate'] == $curr['week_endDate'] ) && $curr['week_startDate'] !== '2019-02-01' && $curr['week_startDate'] !== '2019-02-18' )
print_r($curr);
next($myarray);
}