Pereiti prie turinio

PHP ciklo pasikartojimo problema


Rekomenduojami pranešimai

Sveiki, reikia siek tiek pagalbos, esme toke yra du ciklai tarpusavi jie kaip ir nesusije, bet yra vienas ciklas kito ciklo vidui todel is foreach gaunu pasikartojanti rezultata pvz masyve yra 1234 o man rodo vis is naujo iki tol kol baiges kitas ciklas pvz 1234123412341234 o reikalina yra rodyti tik viena karta, kaip cia butu galima isspresti sita problema? Ciklai vienas kito vidui turi buti nes html lentele yra rodoma poto.

 

<?php

$arr = array('days' =>
    array(
     0 => '1',
     1 => '2',
     2 => '3',
     3 => '4'
    ),
 'time' =>
   array(
     0 => '11:30',
     1 => '11:30',
     2 => '11:30',
     3 => '11:30',
     4 => '11:30'
   ));

   $year = date('Y');
   $month = date('m');
   $num = cal_days_in_month(CAL_GREGORIAN, $month, $year); // parodo kiek yra dienu dabartinem menesi pvz 31


   for($i = 1; $i <= $num; $i++)
   {
     foreach($arr['days'] as $days)
     {
        echo $days;

     <p>echo $i;</p> // spausdina dienas
     // html lentele ir panasiai

     }

   }

?>

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki, reikia siek tiek pagalbos, esme toke yra du ciklai tarpusavi jie kaip ir nesusije, bet yra vienas ciklas kito ciklo vidui todel is foreach gaunu pasikartojanti rezultata pvz masyve yra 1234 o man rodo vis is naujo iki tol kol baiges kitas ciklas pvz 1234123412341234 o reikalina yra rodyti tik viena karta, kaip cia butu galima isspresti sita problema? Ciklai vienas kito vidui turi buti nes html lentele yra rodoma poto.

 

<?php

$arr = array('days' =>
    array(
     0 => '1',
     1 => '2',
     2 => '3',
     3 => '4'
    ),
 'time' =>
   array(
     0 => '11:30',
     1 => '11:30',
     2 => '11:30',
     3 => '11:30',
     4 => '11:30'
   ));

   $year = date('Y');
   $month = date('m');
   $num = cal_days_in_month(CAL_GREGORIAN, $month, $year); // parodo kiek yra dienu dabartinem menesi pvz 31


   for($i = 1; $i <= $num; $i++)
   {
     foreach($arr['days'] as $days)
     {
        echo $days;

     <p>echo $i;</p> // spausdina dienas
     // html lentele ir panasiai

     }

   }

?>

 

Loginė klaida.

Tai kam tau tas for ciklas jei nori išvesti tik vieną kartą ?

Ir apskritai, turėtum gauti errorą vien dėl šito:

<p>echo $i;</p>

 

užtenka tau ir foreach ciklo:

foreach ($arr['days'] as $key => $days) {
echo $days . ' - ' . $key;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose


$year = date('Y');
$month = date('m');
$num = cal_days_in_month(CAL_GREGORIAN, $month, $year); // parodo kiek yra dienu dabartinem menesi pvz 31

$days = array();

foreach ($num as $n)
  $days[$n] = '11:30';


foreach ($days as $day => $time) 
  echo $day . ' - ' . $time;


 

Manau tvarkingiau butu taip daryt. Galeciau normaliau parasyt jeigu pasakytum ka tiksliai nori padaryt

Redagavo Frankenstein
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na pabandysiu paiskinti gal tiksliau ko as cia noriu, yra zmoniu profiliai tam profili atsidares zmogus pildo lentele kekviena menesi (tam ir reikalingas for ciklas, kad atspauzdintu reikiama lenteliai eiluciu kieki su input'ais tiek kiek menesis turi dienu) ten pazymi kuriom dienom dirbo ir prie dienos laika iraso, tai vat dar sioje lenteleje turetu atsirasti tie duomenys is masyvo days, time, extra, bet nelabai man sekas juos istraukti tie ciklai kazkaip susipjauna.

Idedu didesnia dali kodo: http://pastebin.com/Ts4v8Hw6 masyvas yra saugomas duom. baziai serialaizintas

$arr = array('days' =>
    array(
     0 => '1',
     1 => '2',
     2 => '3',
     3 => '4'
    ),
 'time' =>
   array(
     0 => '11:30',
     1 => '11:30',
     2 => '11:30',
     3 => '11:30',
     4 => '11:30'
    ),
 'extra' =>
   array(
     0 => '0:00',
     1 => '0:00',
     2 => '0:00',
     3 => '0:00',
     4 => '0:00'
   ));

Redagavo ParaMynde
Nuoroda į pranešimą
Dalintis kituose puslapiuose
<?php

 

$arr = array('days' =>

array(

0 => '1',

1 => '2',

2 => '3',

3 => '4'

),

'time' =>

array(

0 => '11:30',

1 => '11:30',

2 => '11:30',

3 => '11:30',

4 => '11:30'

));

 

$year = date('Y');

$month = date('m');

$num = cal_days_in_month(CAL_GREGORIAN, $month, $year); // parodo kiek yra dienu dabartinem menesi pvz 31

 

 

for($i = 1; $i <= $num; $i++)

{

$key = $i - 1;

if(isset($arr['days'][$key])){

echo $arr['time'][$key];

}

 

}

 

?>

 

nezinau ar gerai taip, bet esme tokia kad tu darai for per menesio dienas ir tikrini ar tokia diena egzistuoja tavo days array. ir Jeigu egzistuoja tada paimi laika tai dienai. Kiek suprantu numeracija atitikt turi.

 

Pirma diena turi atspauzdinti pirma laika is time array.

Redagavo Frankenstein
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...