簡體   English   中英

PHP While循環數組

[英]PHP While loop an array

從數據庫獲得所有結果后,我添加了一些額外的數據(“ Prio”)

我使用$ _POST方法並將以下結果存儲在數組中:

    array (size=4)
  'gereed' => string 'gereed' (length=6)
  1 => 
    array (size=7)
      'prio' => string '1' (length=1)
      'res' => string '456' (length=3)
      'base' => string '190203' (length=6)
      'lot' => string '101' (length=3)
      'split' => string '0' (length=1)
      'sub' => string '0' (length=1)
      'seq' => string '10' (length=2)
  2 => 
    array (size=7)
      'prio' => string '2' (length=1)
      'res' => string '456' (length=3)
      'base' => string '180676' (length=6)
      'lot' => string '10' (length=2)
      'split' => string '0' (length=1)
      'sub' => string '0' (length=1)
      'seq' => string '30' (length=2)
  3 => 
    array (size=7)
      'prio' => string '3' (length=1)
      'res' => string '456' (length=3)
      'base' => string '180676' (length=6)
      'lot' => string '10' (length=2)
      'split' => string '0' (length=1)
      'sub' => string '0' (length=1)
      'seq' => string '60' (length=2)

現在我只有3行,但是可能有10行或更多行。

我希望像while循環一樣顯示這些數據。 這樣循環就可以遍歷行(1、2、3,xx),我可以像echo $row['prio'];那樣顯示它們echo $row['prio'];

也許這是一個簡單的問題,但我仍在學習。

編輯! 在輸入部分,我獲得Prio值。 我想在右行更新此值。

UPDATE VMSCHRIP_SIM SET OPERATION_PRIORITY = $_POST['prio'] WHERE BASE = $_POST['base'] AND RESOURCE = $_POST['res'] AND blablabla

像那樣的東西

這是我的代碼的一部分。

if ($result > 1) {
        $i = 1;
        $stmt->execute();
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
            $TrCode = transactionCodeDirect($Employee, $row["WORKORDER_BASE_ID"], $row["WORKORDER_LOT_ID"], $row["WORKORDER_SPLIT_ID"], $row["WORKORDER_SUB_ID"], $row["SEQUENCE_NO"], $row["RESOURCE_ID"]);                  
            if ($TrCode <> ""){
                $actief = "<p class=text-success>Actief</p>";
            }else{
                $actief = "<p class=text-warning>Klaar om te starten</p>";
            }
            if($row["DESCRIPTION"] == ""){
                $description = strtok(wo_description($row["WORKORDER_BASE_ID"], $row["WORKORDER_LOT_ID"], $row["WORKORDER_SPLIT_ID"]), '(**');
            }else{
                $description = $row["PART_ID"]." : ".$row["DESCRIPTION"];
            }
            if($row["PREV_OP"] == "" and $row["MAT_REMAINING"] == '0'){
                $row["PREV_OP_COMPLETED_QTY"] = $row["CALC_END_QTY"];
            }
            ?>   
                <a href="#" class="list-group-item"> 
                    <div style="text-align:left">
                        <div class="row">
                            <div class="col-lg-1">  
                                <br>
                                <span class="fa-stack fa-1x">
                                    <i class="fa fa-circle-o fa-stack-2x"></i>
                                    <span  class="fa fa-stack-1x"><?php echo $row["OPERATION_PRIORITY"];?></span>
                                </span>
                            </div>
                            <div class="col-lg-1">  
                                <br>
                                    <input type="text" name="<?php echo $i; ?>[prio]" class="form-control" value="" autofocus placeholder="Prio">
                                    <input type="hidden" name="<?php echo $i; ?>[res]" value="<?php echo $row['RESOURCE_ID'];?>">
                                    <input type="hidden" name="<?php echo $i; ?>[base]" value="<?php echo $row['WORKORDER_BASE_ID'];?>">
                                    <input type="hidden" name="<?php echo $i; ?>[lot]" value="<?php echo $row['WORKORDER_LOT_ID'];?>">
                                    <input type="hidden" name="<?php echo $i; ?>[split]" value="<?php echo $row['WORKORDER_SPLIT_ID'];?>">
                                    <input type="hidden" name="<?php echo $i; ?>[sub]" value="<?php echo $row['WORKORDER_SUB_ID'];?>">
                                    <input type="hidden" name="<?php echo $i; ?>[seq]" value="<?php echo $row['SEQUENCE_NO'];?>">
                            </div>
                            <div class="col-lg-4">  
                                <b><?php echo $row["NAME"];?></b><br>
                                <?php echo $row["WORKORDER_BASE_ID"];?>/<?php echo $row["WORKORDER_LOT_ID"];?>.<?php echo $row["WORKORDER_SPLIT_ID"];?>-<?php echo $row["WORKORDER_SUB_ID"];?>:<?php echo $row["SEQUENCE_NO"];?><br>
                                Vorige bewerking: <?php echo $row["PREV_OP"];?><br>
                            </div>
                            <div class="col-lg-6">                          
                                <?php echo $description;?><br>                                  
                                <?php echo intval($row["COMPLETED_QTY"]);?> / <?php echo intval($row["CALC_END_QTY"]);?> (<?php echo intval($row["PREV_OP_COMPLETED_QTY"]);?>) Stuks
                                <div class="tooltip12"><i class="fa fa-question-circle"></i>
                                    <span class="tooltip12text">Aantal gereed / Totaal (Beschikbaar)</span>
                                </div><br>
                                Volgende bewerking: <?php echo $row["NEXT_OP"];?><br>
                            </div>
                            <div class="col-lg-1">
                                <?php if (transactionCodeDirect($Employee, $row["WORKORDER_BASE_ID"], $row["WORKORDER_LOT_ID"], $row["WORKORDER_SPLIT_ID"], $row["WORKORDER_SUB_ID"], $row["SEQUENCE_NO"], $row["RESOURCE_ID"]) <> ""){ ?>
                                    <i class="fa fa-rotate-right fa-4x" text-center"></i><br><b>Running</b>
                                <?php } ?>  
                            </div>                  
                        </div>
                    </div>
                </a>    
        <?php
        $i++;
        }
    }else{
        echo "Result is niet groter dan 1";
    }

可能就像這樣。

foreach($_POST as $value){
    if(is_array($value)){
        foreach($value as $key => $val){
            // first iteration
            echo $key; // prio
            echo $val; // 1

            // in second iteration, `$val` contains '2'
        }   
    }
}

由於具有二維數組,因此可以在PHP中使用foreach函數來遍歷數組。 在下面的代碼中,我使用了嵌套的foreach函數來循環二維數組。

echo "<table><tr>th>Key</th><th>Value</th></tr>"; 
foreach($_POST['your_array'] as $value){
    if(is_array($value)){   
           foreach($value as $key => $val){
                echo "<tr>";
                echo "<td>" . $key . "</td>"; // prio
                echo "<td>" . $val . "</td>"; // 1
                echo "</tr>"
            }   

        }
    }
    echo "</table>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM