Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 柱的模量使用方法_Php_Optimization - Fatal编程技术网

Php 柱的模量使用方法

Php 柱的模量使用方法,php,optimization,Php,Optimization,我目前有一份名单(),我将其分为两列。但是在完成代码之后,我一直在想是否有更有效或更干净的方法来做同样的事情 echo "<table class='area_list'><tr>"; // Loop users within areas, divided up in 2 columns $count = count($areaArray); for($i=0 ; $i<$count ; $i++) { $uid = $areaArray[$i]; // g

我目前有一份名单(
    ),我将其分为两列。但是在完成代码之后,我一直在想是否有更有效或更干净的方法来做同样的事情

    echo "<table class='area_list'><tr>";
    // Loop users within areas, divided up in 2 columns
    $count = count($areaArray);
    for($i=0 ; $i<$count ; $i++) {
      $uid = $areaArray[$i];
      // get the modulus value + ceil for uneven numbers
      $rowCalc = ($i+1) % ceil($count/2);
    
      if ($rowCalc == 1) echo "<td><ul>";
    
      // OUTPUT the actual list item
      echo "<li>{$users[$uid]->profile_lastname}</li>";
    
      if ($rowCalc == 0 && $i!=0) echo "</ul></td>";
    }
    echo "</tr></table>";
    
    echo”“;
    //在区域内循环用户,分为两列
    $count=计数($areaArray);
    
    对于($i=0;$i可以循环两次,每列循环一次。第一列从0开始,第二列从1开始。增量为2

    编辑:为了使其更美观,请将列本身放入一个循环中:

    $cols = 3;
    
    echo '<table><tr>';
    
    // column loop
    for ($c = 1; $c <= $cols; $c++) {
      echo '<td><ul>';
    
      // item loop
      for ($i = 0; $i < count($areaArray); $i += $c) {
         echo '<li>...</li>';
      }
    
      echo '</ul></td>';
    }
    
    echo '</tr></table>';
    
    $cols=3;
    回声';
    //列循环
    
    for($c=1;$c不知道这是否是@llia的意思,但是如果有这样的for循环:

    //declare how many columns are needed
    $cols=2;
    
    //iterate over each row of entries (down the column)
    for ($i=0;i<$count;i+=cols){ 
    
         echo "<td><ul>";
    
         //entry loop (across the row)
         for($j=0;j<$cols;j++){ 
    
               //whose line is it anyway?
               $uid = $areaArray[$i+$j];
    
               echo "<li>{$users[$uid]->profile_lastname}</li>";
         }
         //end entry loop
    
         echo "</ul></td>";
    }
    //end row loop
    
    //声明需要多少列
    $cols=2;
    //迭代每一行条目(沿列向下)
    
    对于($i=0;i这应该可以满足您的要求。我几乎只是将其他两个答案组合在一起,所以每个人的答案都是+1

    $cols=3;
    $user_count = count($users);
    
    echo "<table class='area_list'><tr>";
    
    // Column loop
    for($i=0;$i<$cols;$i++){
        echo "<td><ul>";
    
        // user loop
        for($j=$i;$j<$user_count;$j+=$cols){
            echo "<li>{$users[$j]->profile_lastname}</li>";
        }
        echo "</ul></td>";
    }
    echo "</tr></table>";
    $cols=3;
    $user\u count=计数($users);
    回声“;
    //列循环
    对于($i=0;$i
    $cols=3;
    $chunkSize=ceil(计数($areaArray)/$cols);
    echo$chunkSize*$cols;
    foreach(数组\块($areaArray,$chunkSize)作为$items):?>
    

    这是实现这一点的直截了当的方法,我希望能够更改列数。您可以将整个过程包装在一个双循环中—一个用于写入列,另一个用于写入项。很抱歉,我会吹毛求疵,但您错过了结束符。谢谢。因为我有一个arra,所以不太管用y
    $areaArray
    进行迭代(在上面的代码段中遗漏了这一点,所以这是我的错)。因此,我的for循环中不能有一个在数组本身上迭代的for循环。这就是为什么我要检查每个
    $I
    ,但它给了我一个不同的视角,谢谢!我完全没有看到“$uid”赋值!但我会编辑它以显示您可以将它放在哪里。感谢新的努力,它没有真正起作用要么因为数组的计数器只执行
    $i+$j
    ,但它必须从第一列的1-5开始,然后从第二列的6-10开始。因此,我需要能够在第二列中将其设置为6。我想我得到了我所要求的,因为现在有多个透视图供我尝试。:)实际上,这也不起作用,因为
    $j+=$cols
    使它每次跳转
    3
    。而且它仍然没有考虑整个用户数组。它必须在内部for循环中相乘,
    $j
    首先设置为
    =($count/2)*$cols
    使计数器从正确的位置开始工作。感谢您的努力,因为这实际上让我找到了一种新的方法,只要我做了刚才指定的更改。谢谢!+1所有用户都是输出的。它应该每次跳3,因为我将它设置为做3列-您希望能够指定如何进行很多列,对吗?每次用户循环都从0开始,然后从1开始,然后从2开始。所以第一个循环是用户0,3,6,9,12,15。下一个循环是用户1,4,7,10,13…下一个循环是用户2,5,8,11等等…但不管怎样,我很高兴它是有用的。
    $cols = 3;
    $chunkSize = ceil(count($areaArray) / $cols);
    echo $chunkSize * $cols;
    foreach (array_chunk($areaArray, $chunkSize) as $items) : ?>
     <td>
      <ul>
    <?php foreach ($items as $item) : ?>
       <li><?php echo $item ?></li>
    <?php endforeach; ?>
      </ul>
     </td>
    <?php endforeach; ?>