如何从foreach循环中的匹配值获取下一个值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从foreach循环中的匹配值获取下一个值相关的知识,希望对你有一定的参考价值。

如何从循环中的匹配值获取下一个值。数组中需要'1010-1040'键。

<?php

$arr = Array
(
    '0900-0930' => 0,
    '0935-1005' => 0,
    '1010-1040' => 0,
    '1045-1115' => 0
);


$matchVal = '0935-1005';

foreach ($arr as $key => $value) {

    if($matchVal == $key){
        echo $key.'<br />';
    }
    echo next($arr); 
}
?>

提前致谢。

答案

试试这个

$arr = Array
(
    '0900-0930' => 0,
    '0935-1005' => 0,
    '1010-1040' => 0,
    '1045-1115' => 0
);


$matchVal = '0935-1005';

$keys = array_keys($arr);
print $keys[array_search($matchVal,$keys)+1];

产量

1010-1040
另一答案
      <?php 
        $arr = Array
        (
            '0900-0930' => 0,
            '0935-1005' => 0,
            '1010-1040' => 0,
            '1045-1115' => 0
        );
        $keys = array_keys($arr);
        $matchVal = '0935-1005';
        $matched = array_search($matchVal, $keys); // $key = 1;
        $nextindex = $matched + 1;
        $nextValue = $arr[$nextindex];
        ?>
另一答案

请试试这个。

<?php

$arr = Array
(
    '0900-0930' => 0,
    '0935-1005' => 0,
    '1010-1040' => 0,
    '1045-1115' => 0
);


$matchVal = '0935-1005';

foreach ($arr as $key => $value) {

    if($matchVal == $key){
        echo $key.'<br />';
    }
    next($arr);
    echo key($arr)."<br/>;
}
?>

以上是关于如何从foreach循环中的匹配值获取下一个值的主要内容,如果未能解决你的问题,请参考以下文章

在这种情况下,如何获得外部 foreach 循环值?

从 Java 8 forEach 循环返回一个值

如果在foreach循环下动态生成Textarea不止一次,如何在Razor(blazor)组件中获取Textarea值

foreach 循环中的array_intersect

PHP - 提交日期/时间/从foreach循环中选择输入值到$ _POST不返回任何内容

如何在 SwiftUI 的 foreach 循环中设置切换状态