Çok boyutlu dizi sayesinde PHP foreach döngü

6 Cevap php

Ben bir çok boyutlu dizi nasıl kullanabilirim bunu var? Ben bir for döngü içinde her ayrı dizi kullanmak istiyorum.

What I want to achive is to be able to put each part in my database like entry in db no. 0 -> 1 and 4 entry in db no. 1 -> 5 and 6 entry in db no. 2 -> 1 and 4 and 5 and 6

Bu kodu vardır:

<?php 
    print_r($calculatie_id); 
    for ($i=0; $i<=3; $i++) 
{ 
?>  
<tr> 
    <td> 

    <?php 
    foreach ($calculatie_id[$i] as $value) 
    { 
        echo $value; 
    } 
?>

print_r($calculatie_id); gives 
Array ( [0] => Array ( [0] => 4 [1] => 6 ) [1] => Array ( [0] => 1 [1] => 5 ) [2] => Array ( [0] => 5 [1] => 6 ) [3] => )

Kullanırken Ama foreach Ben sadece almak 46

Bazı ekstra bilgiler:

Bu dizi döngü için bir bir çoklu seçim tarafından oluşturulur. Başka bir öneri bekliyoruz.

    for ($i=0; $i<=$aantal_regels_corr; $i++)
{ 
?> 
<tr>
    <td>

        <?php 
        // maak select name
        $calculatie_id = 'calculatie_id'.$i;

        // rest van formulier
        if($error_vergeten[$i] == "ja"){ $error_omschr = $error_omschr_vergeten[$i]; include('includes/input_error.php'); } ?>&nbsp;<textarea rows="7" cols="80" name="omschrijving[]" /><?php echo $omschrijving[$i]; ?></textarea>
    </td>
    <td colspan="2">
        <select multiple="multiple" width="50" size="7" name="<?php echo $calculatie_id ?>[]" style="width: 150px">
        <?php
            $sql_calc = "select id, naam, actief from sp_calculatie WHERE (offerte_id = '".$row['off_offerte']."' OR offerte_id = '".$offerte_id."') AND actief = 'ja' ORDER BY id ASC";
            $res_calc = mysql_query($sql_calc,$con);  
            while ($row_calc = mysql_fetch_assoc($res_calc)){
        ?>
            <option value="<?php echo $row_calc["id"] ?>"><?php if (empty($row_calc["naam"])) { echo $row_calc["id"]; } else { echo $row_calc["naam"]; } ?></option>
        <?php } ?></select>
    </td>
</tr>
<?php } ?>

6 Cevap

foreach($calculatie_id as $inner_arr)
    foreach($inner_arr as $value)
        echo $value;

Edit: öğrenmek ve burada neler olup bittiğini anlamaya çalışmalısınız. Sonra yazdığım kodu ile ne istersen yapabilirsin. Sen dedi: gives 14561456 I want to use $calculatie_id0=14 $calculatie_id1=56 $calculatie_id2=1456 etc Sonra, böyle bir şey yapmak zorunda olacak:

foreach($calculatie_id as $index => $inner_arr){
    echo "$calculatie_id$index = "
    foreach($inner_arr as $value)
        echo $value;
    echo "<br/>";
}

Yoksa (benim için hiçbir anlam ifade etmiyor) isteyenler değişkenleri oluşturabilirsiniz:

foreach($calculatie_id as $index => $inner_arr){
    ${"calculatie_id$index"} = '';
    foreach($inner_arr as $value)
        ${"calculatie_id$index"} .= $value;
    echo ${"calculatie_id$index"}."<br/>";
}

Temelde ne var böyle bir dizidir:

array(
 array(
  data
 )
)

Tüm ihtiyacınız olan:

foreach($yourArray as $innerArray)
 foreach($innerArray as $value)
  echo $value;

İstediğin bu irade çıktı. Ben neden o zaman () döngü foreach için yapıyoruz özellikle emin değilim.

Sen foreach döngüler (böylece bir döngü içinde bir döngü var) yuva gerekir

Eğer deneyebilirsiniz:

foreach ($calculatie_id as $key => $value) {
  echo "$calculatie_id:".$key;
  for ($i=0;$i<=count($value);$i++) {
    echo $value[$i];
  }
}

Orijinal kod parçacığı çalışmıyor neden ben anlamıyorum. O $calculatie_id[3] bir dizi olmadığı gerçeği olabilir?

Ben bu çalıştı:

<?php

$calculatie_id = array ( array(4,6), array(1,5), array(5,6), '' );

for ($i=0; $i<=3; $i++) 
{ 
  if(!is_array($calculatie_id[$i]))
    continue;
  echo "$i: ";
  foreach ($calculatie_id[$i] as $value) 
  { 
    echo $value; 
  } 
  echo '<br/>';
}

Ve o yazdırır:

0: 46
1: 15
2: 56

Many thanks for helping me out this far but all the examples I try to implement are not working. I have been trying this script for over 2 weeks now. It seems I'm going all the wrong way.

Ben www.pws.nl / downloads / sp_offerte_add.rar online kodumu koyduk. Ben şu anda kodu yazıyorum sonra ne kolay olmalıdır.