6 votes

Retourner la première clé dans le foreach

J'ai un problème pour retourner la première clé du tableau dans foreach. Je peux renvoyer la clé $key mais je n'arrive pas à trouver comment renvoyer uniquement la première clé $key.

<td>
    <div align="center">
        <span class="formlist">
            <select id="plant" name="plant[]" class="form-control" multiple="multiple">
            <?php 
                $query_plant = "SELECT * FROM plant WHERE plant_enable=1 ORDER BY plant_name";
                $rs_plant = DB_Query($query_plant); 
                while ($row_plant = DB_FetchRow($rs_plant)) {
                    $plant.='<option name='.$row_plant["plant_shortname"].' value='.$row_plant["plant_id"].'>' .$row_plant["plant_name"].' ['.$row_plant["plant_id"].']</option>';
                }   
                mysql_free_result($rs_plant);
                echo $plant;
            ?>
            </select>
       </span>
    </div>
</td>

if(isset($_POST['plant'])) {        
    $checkbox1 = $_POST['plant']; 
    $chk="";
    $stf_sql = "SELECT * FROM test_plant WHERE staff_id = '".$STAFF_ID."'";
    $stf_res = DB_Query($stf_sql);      
    if(DB_RowsReturned($stf_res) > 0) {
       $del_sql = "DELETE FROM test_plant WHERE staff_id = '".$STAFF_ID."'";
       $del_res = DB_Query($del_sql);
    }       
    foreach($checkbox1 as $chk1)  
    {  
        $in_ch="insert into test_plant(staff_id, plant_name, submit_dt) values ('$STAFF_ID','$chk1', Now())";  
        $in_res = DB_Query($in_ch);                
        $abc = mysql_query("SELECT * FROM test_plant");    
        while($abc_row = mysql_fetch_assoc($abc)) {
            foreach($abc_row as $key => $value) {
                echo $key; //return first key here
            }          
        }      
    }       
} else {
    echo "OK"; 
}

J'ai essayé de renvoyer $key[0] mais il ne renvoie que la première lettre. Je veux renvoyer 'p_id'.

My table structure :

4voto

Naga Points 2026

Comme ça,

$keys = array_keys($checkbox1);
print_r($keys); // for all keys
echo $keys[0]; // It will echo first key of the array.

0voto

Enstage Points 1948

Vous pourriez réinitialiser le pointeur de tableau interne et ensuite obtenir la clé de l'élément actuel :

reset($checkbox1);
echo key($checkbox1);

(Mettez cela en dehors de votre boucle while la plus extérieure).

Ou vous pourriez même obtenir toutes les clés du tableau, et ensuite saisir la clé actuelle :

echo current(array_keys($checkbox1));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X