【问题标题】:How to get next value from match value in foreach loop如何从foreach循环中的匹配值中获取下一个值
【发布时间】:2018-03-06 05:45:39
【问题描述】:

如何在循环中从匹配值中获取下一个值。需要数组中的 '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); 
}
?>

提前致谢。

【问题讨论】:

标签: php arrays foreach core


【解决方案1】:

试试这个

$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

【讨论】:

    【解决方案2】:
          <?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];
            ?>
    

    【讨论】:

      【解决方案3】:

      请试试这个。

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

      【讨论】:

        猜你喜欢
        • 2020-09-16
        • 2023-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-25
        相关资源
        最近更新 更多