Keresés

Keresendő kifejezés:

Toplista

Toplista
  • betöltés...

Segítség!

Ahhoz, hogy mások kérdéseit és válaszait megtekinthesd, nem kell beregisztrálnod, azonban saját kérdés kiírásához ez szükséges!

Hogyan lehetne ezt php-ban megcsinálni?

399
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