我的数组类型为'months' => 'txt for ppl'
$timeArr = [
'1' => '1 месяц',
'3' => '3 месяца',
'6' => '6 месяцев',
'9' => '9 месяцев',
'12' => '1 год',
'18' => '1,5 года',
'24' => '2 года',
'36' => '3 года',
'48' => '4 года',
'60' => '5 лет',
'72' => '6 лет',
'84' => '7 лет',
'120' => '10 лет',
'180' => '15 лет',
'240' => '20 лет',
'300' => '25 лет',
'360' => '30 лет',
];
我的想法是让函数返回我想要的时间段。例如,函数周期($ from,$ to):period(240,360)将返回key =>的数组。来自密钥' 240'的值键入360'。但我不知道如何在没有循环的情况下制作它。
答案 0 :(得分:1)
请尝试以下:
function period($array, $keys)
{
return array_intersect_key($array, array_flip($keys));
}
$keys = array( '240', '300' );
$results = period($timeArr, $keys);
print_r($results);
答案 1 :(得分:1)
你可以像这样使用array_slice,你可以查看 live demo here 。
$indexes = array_flip(array_keys($timeArr));
$results = array_slice($timeArr, $indexes[240], $indexes[360]);
答案 2 :(得分:0)
按键获取以下代码获取范围数组。
它从
$timeArr
返回范围值及其键。
<强> PHP 强>
<?php
function period($from,$to){
$timeArr = [
'1' => '1 месяц',
'3' => '3 месяца',
'6' => '6 месяцев',
'9' => '9 месяцев',
'12' => '1 год',
'18' => '1,5 года',
'24' => '2 года',
'36' => '3 года',
'48' => '4 года',
'60' => '5 лет',
'72' => '6 лет',
'84' => '7 лет',
'120' => '10 лет',
'180' => '15 лет',
'240' => '20 лет',
'300' => '25 лет',
'360' => '30 лет',
];
$newArr = array();
$range = range($from,$to);
$newArr = array_intersect_key($timeArr, array_flip($range));
return $newArr;
}
?>
<强>用法强>
<?php
$newArray = period(240,360);
echo "<pre>";
print_r($newArray);
?>
<强>输出强>
Array
(
[240] => 20 лет
[300] => 25 лет
[360] => 30 лет
)