Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Hogyan lehetne ezt php-ban megcsinálni?

760
http://kepkezelo.com/images/ak9zpdu9fof2j487xavd.png
az itt látható fájlból azoknak a napoknak az adait kellene kiírni ahol az érték oszlopban 3 egymást követő nap nagyobb érték szerepel mint 0. Pontosan csak három nap lehet illetve a három nap előtt és után az értéknek 0-ának kell lennie.
Jelenleg 1 felhasználó nézi ezt a kérdést.
php, tömb, explode
0
Felsőoktatás / Informatika

Válaszok

3
azaz a 2,3,4 nap adatait kellene kiiratni
0

Nem tudom milyen struktúrában van az adat, de tegyük fel, hogy két tömbben ($napok, $ertekek).

<?php
for ($i = 1; $i < count($ertekek) - 3; $i++) {
if ($ertekek[$i-1] == 0 && $ertekek[$i] > 0 && $ertekek[$i+1] > 0 && $ertekek[$i+2] > 0 && $ertekek[$i+3] == 0) {
echo $napok[$i]."\t\t".$ertekek[$i]."<br>".$napok[$i+1]."\t\t".$ertekek[$i+1]."<br>".$napok[$i+2]."\t\t".$ertekek[$i+2]."<br><br>";
$i += 3;
}
}
?>

Megjegyzések:
- a $i az éppen vizsgált hármasok első tagjára mutat
- a nulladik elem kihagyható, mert nem felelhet meg a feltételnek, nem lehet előtte nulla
- mivel a $i egy hármas első tagját jelöli, ezért nem kell megvizsgálni a tömb utolsó 3 elemét
- a \t tabulátort jelöl a \n pedig sortörést
- ha egy feltételnek megfelelő hármast találtunk, akkor a következő hármas 4 indexszel arrébb lehet.
[pl. a 0 1 2 3 0 4 5 6 0 esetben, a program akkor találja meg az (1 2 3) hármast, amikor $i = 1. Jól látszik, hogy a következő hármas kezdőeleme legközelebb az $i=5 helyen lehet, tehát egy találat esetén az $i 4-gyel növelendő, azaz a for ciklus alap 1-gyel történő növelésén kívül még 3-mal növelni kell a változó értékét.]
0

De ha arra irányult a kérdés, hogy a fájlból hogyan kell a tömböket megcsinálni akkor http://php.net/manual/en/function.preg-split.php

$darabolt = preg_split("/[\s,]+/", $fájl_szövege);
Innnentől pedig csak ki kell hagyni az első két elemet és minden páros indexű elemet a $napok array-be, páratlanokat pedig a $ertekek arraybe helyezni.
0