【问题标题】:How do i loop through reordered array in php/laravel without using the reordered key number如何在不使用重新排序的键号的情况下循环遍历 php/laravel 中的重新排序的数组
【发布时间】:2023-03-30 19:43:02
【问题描述】:

我有一个已排序的数组 ($sortProgDetails):

items: array:3 [▼
    1 => array:4 [▶]
    0 => array:4 [▶]
    2 => array:4 [▶]
]

然后我想以当前显示的方式循环遍历它,但使用键作为 0,1,2,而不是 1,0,2。我怎样才能做到这一点?

我想在 key = 1,然后是 0,然后是 2 的项目上返回行 id 的循环示例。所以我希望它不是第一个 $key = 1,而是 0。

foreach ($sortProgDetails as $key=>$progDetails) {
     $getCurrentRow = Programmes::where('reference', $sortProgDetails [$key]['reference'])->get()[0]['id'];
}

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您可以使用for 循环并设置要使用计数器检索的索引:

    for ($i = 0; $i < count($sortProgDetails); $i++) {
      $getCurrentRow = Programmes::where('reference', $sortProgDetails[$i]['reference'])->get()[0]['id'];`
    }
    

    【讨论】:

      【解决方案2】:

      如果你想按顺序循环它但有一个计数器,那么添加它

      $i=0;
      foreach ($sortProgDetails as $key=>$progDetails) {
          //you can use the variable $i here wich will be 0, 1, 2...
          $getCurrentRow = Programmes::where('reference', $progDetails['reference'])->get()[0]['id'];
          $i++; 
      }
      

      如果你想按旧顺序循环,那么使用传统方式,for()

      for($i = 0; $i < count($sortProgDetails); $i++) {
           $getCurrentRow = Programmes::where('reference', $sortProgDetails [$i]['reference'])->get()[0]['id'];
      }
      
      

      【讨论】:

        【解决方案3】:

        我认为这就是你所需要的和你的答案:

        你需要 ksort :

        ksort($sortProgDetails);
        

        看看这个链接: click

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-08-03
          • 1970-01-01
          • 2013-03-07
          • 2021-03-09
          • 2021-05-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多