【问题标题】:Get First And Last Data From conditioned foreach loop从条件 foreach 循环中获取第一个和最后一个数据
【发布时间】:2018-08-17 20:02:11
【问题描述】:

您好,我遇到了奇怪的问题,我想要 for-each 循环中的第一个数据和最后一个数据。为此,我已经看到this 的回答。这真的很有帮助,但我的情况确实有点复杂。 我有如下循环

<?php
    $count = 0;
    $length = count($myDataArray);
    foreach ($myDataArray as $value) {
        if($count >= 7)
        {
            //Some Data to Print
            //this is first data for me

            <tr >
                <td><?=$myfinaldate?></td>
                <td><?=$stockdata[1]?></td>
                <td><?=$stockdata[2]?></td>
                <td><?=$stockdata[3]?></td>
                <td <?php if($count == 8)echo "style='background-color:#47ff77;'"; ?>><?=$stockdata[4]?></td>
                <td><?=$stockdata[5]?></td>
                <td><?php echo $mydate; ?></td>
            </tr>
            <?php

        }
        $count++;
    }

现在我如何从循环中获取第一个和最后一个数据?

【问题讨论】:

  • 你需要做这个循环还是只想要第一个和最后一个元素?
  • @MickaelB phili maur 是对的
  • 只是为了澄清:他并不是真的想要获得第一个和最后一个元素,而是第8个和最后一个。所以这个副本并不能完全解决问题。
  • 只是一个小点你的例子有点奇怪,因为你实际上并没有在 foreach 循环的任何地方使用来自$value 的任何东西。

标签: php loops foreach


【解决方案1】:

我想你可以使用你的length 属性。 当您拥有阵列总数时,只需检查 myDataArray[0]myDataArray[$length-1] ?

【讨论】:

    【解决方案2】:

    要获取数组的第一个和最后一个值,请使用以下函数:

    $array = $myDataArray;
    
    $array_values = array_values($myDataArray);
    
    // get the first value in the array
    print $array_values[0]; // prints 'first item'
    
    // get the last value in the array
    print $array_values[count($array_values) - 1]; // prints 'last item'
    

    【讨论】:

      【解决方案3】:

      您可以使用array_values 删除数组的键并将它们替换为索引。如果这样做,您可以直接访问指定的字段。像这样,您可以检查您对数组的要求,而无需对其进行循环,如下面的if-conditions 所示:

      $length = count($myDataArray);
      $dataArrayValues = array_values($myDataArray);
      $wantedFields = [];
      if ($length >= 8) {
          $wantedFields[] = $dataArrayValues[7];
          if ($length > 8) {
              $wantedFields[] = end($dataArrayValues);
          }
      }
      

      由于条件限制,如果第 8 个字段也是最后一个字段,您将不会打印两次。

      foreach ($wantedFields as $value) {
          <tr>
          ... //Your previous code
          </tr>
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多