【问题标题】:Looping foreach for always several times总是循环 foreach 几次
【发布时间】:2016-11-02 08:47:55
【问题描述】:

我总是有 12 个$new['period_??']。现在,我在声明 $new['period_??'] 后编写了 12 次这些代码。有没有办法让它变得更简单?

          foreach ($new ['period_10'] as $item) { $po_10th [] = $item -> po_id ; }
          $new ['uni_10'] = array_unique($po_10th) ;
          foreach ($new ['uni_10'] as $po_id) {
            $po = $this -> model_prcsys -> get_po_by_id (md5($po_id)) ;
            $pos_10 [] = $po ['po_id'] ;
            $currency10 [] = $po ['currency'] ;
          }
          $cur_pos_10 = array_unique($currency10) ;
          foreach ($cur_pos_10 as $currency) {
            $new ['po_arr_10'] = $this -> model_prcsys -> get_pos_with_curr ($pos_10,$currency) ;
            $total_price = array () ;
            $curren = array () ;
              foreach ($new ['po_arr_10'] as $key) {
                $total_price [] = $key -> total_line_price ;
                $curren [] = $key -> currency ;
              }
              $new ['total_n_curr10'] [] = array_merge(array(array_sum($total_price)),array_unique($curren)) ;
          }

这就是我经历过的残酷现实!

    $new ['period_1'] = $periodic_items [0] ; $new ['frek_1'] = $frek [0] ;
      $new ['period_2'] = $periodic_items [1] ; $new ['frek_2'] = $frek [1] ;

      $new ['period_3'] = $periodic_items [2] ; $new ['frek_3'] = $frek [2] ;
      $new ['period_4'] = $periodic_items [3] ; $new ['frek_4'] = $frek [3] ;

      $new ['period_5'] = $periodic_items [4] ; $new ['frek_5'] = $frek [4] ;
      $new ['period_6'] = $periodic_items [5] ; $new ['frek_6'] = $frek [5] ;

      $new ['period_7'] = $periodic_items [6] ; $new ['frek_7'] = $frek [6] ;
      $new ['period_8'] = $periodic_items [7] ; $new ['frek_8'] = $frek [7] ;

      $new ['period_9'] = $periodic_items [8] ; $new ['frek_9'] = $frek [8] ;
      $new ['period_10'] = $periodic_items [9] ; $new ['frek_10'] = $frek [9] ;
        foreach ($new ['period_10'] as $item) { $po_10th [] = $item -> po_id ; }
          $new ['uni_10'] = array_unique($po_10th) ;
          foreach ($new ['uni_10'] as $po_id) {
            $po = $this -> model_prcsys -> get_po_by_id (md5($po_id)) ;
            $pos_10 [] = $po ['po_id'] ;
            $currency10 [] = $po ['currency'] ;
          }
          $cur_pos_10 = array_unique($currency10) ;
          foreach ($cur_pos_10 as $currency) {
            $new ['po_arr_10'] = $this -> model_prcsys -> get_pos_with_curr ($pos_10,$currency) ;
            $total_price = array () ;
            $curren = array () ;
              foreach ($new ['po_arr_10'] as $key) {
                $total_price [] = $key -> total_line_price ;
                $curren [] = $key -> currency ;
              }
              $new ['total_n_curr10'] [] = array_merge(array(array_sum($total_price)),array_unique($curren)) ;
          }

      $new ['period_11'] = $periodic_items [10] ; $new ['frek_11'] = $frek [10] ;
      $new ['period_12'] = $periodic_items [11] ; $new ['frek_12'] = $frek [11] ;

谁能帮我简化一下?它总是循环 12 次...

【问题讨论】:

  • 这个问题可能更适合CodeReview.SE
  • 再看一遍你正在做的事情。制作一个带有计数器的 for 循环。数到 11 或 12,然后停止循环。
  • 我 100% 同意 @RickBronger,这是您最好的解决方案 :)
  • @RickBronger,你能帮帮我吗?

标签: php codeigniter foreach controller


【解决方案1】:

https://eval.in/670429 只需制作您想要的钥匙即可。

<?php
for($i = 0; $i < 10; $i++)
{
$new ['period_'.$i] = $periodic_items [$i];
}
var_dump($new);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 2011-06-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多