Nasihun Amin Suhardiyan Nasihun Amin Suhardiyan - 29 days ago 9
PHP Question

PHP Loop inside array

How can I loop inside an

array
in my code?

This is the static version of my script:

$val=array(
array("value" => "Male","label" => "Male"),
array("value" => "Female","label" => "Femal"),
);

my_form("Gender","select","gender",$val,"",5);


Then, I need to retrieve the
value
and
label
from the database.

So I customized my previous code to:

$div=array(
while($h = mysql_fetch_array($qwery)){
array("value" => "$h[id]","label" => "$h[div]"),
}
);

my_form("Division","select","id_div",$div,"",5);


When I run it I get this
Error message
:


Parse error: syntax error, unexpected 'while' (T_WHILE), expecting ')'


Can anyone help me?

I want to loop the join data from my database into :


input type="Select"

Answer

You can't use a loop directly as a value in an array. Instead, loop over and add each array for each iteration of the while-loop.

Using $div[] = "value", you add that value as a new element in that array.

$div = array(); // Initialize the array 

// Loop through results
while ($h = mysql_fetch_array($qwery)) { 
    // Add a new array for each iteration
    $div[] = array("value" => $h['id'], 
                   "label" => $h['div']);
}

This will create a two-dimensjonal array which would look (as an example) like

array(
    array(
        "value" => "Male",
        "label" => "Male"
    ), 
    array(
        "value" => "Female",
        "label" => "Female"
    )  
);

...which you then can look through with a foreach to do what you want with it.


If you want this to be output as options in a select-element, you could just do that directly

<select name="sel">
    <?php 
    while ($row = mysql_fetch_array($qwery)) { 
        echo '<option value="'.$row['id'].'">'.$row['div'].'</option>';
    }
    ?>
</select>