preg_grep gibt keinen wert zurück

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

123user123

Mitglied
Vielen dank für die antwort.

@Sempervivum Ich habe den von dir geposteten code probiert, klarerweise auf meine Bedürfnisse geändert und es funktioniert nun.

Jetzt würde ich noch gerne fragen ob mir jemand den richtigen schubser geben könnte, den code so abzuändern, um es dem user zu ermöglichen die Daten von einem bestimmten Zeitraum, diese in einer Tabelle stecken und ausgeben.
 

Sempervivum

Erfahrenes Mitglied
Du meinst, der Benutzer soll ein Startjahr und ein Endejahr eingeben können und von diesem Zeitraum sollen die Daten dann angezeigt werden?
 

Sempervivum

Erfahrenes Mitglied
Auch das ist kein Problem, denn mit Regex lässt sich leicht das Jahr aus dem String extrahieren:
Code:
    $json = '
    { 
        "INTC":{ 
            "Revenue":{ 
                "2013-12":"52708",
                "2014-12":"55870",
                "2015-12":"55355",
                "2016-12":"59387",
                "2017-12":"62761",
                "TTM":"62761"
            },
            "Cost of revenue":{ 
                "2013-12":"21187",
                "2014-12":"20261",
                "2015-12":"20676",
                "2016-12":"23196",
                "2017-12":"23692",
                "TTM":"23692"
            }
        }
    }';
    $arr = json_decode($json, TRUE);
    $fromyear = '2014';
    $toyear = '2016';
    $pattern = "/^(\d{4})-/";
    $costs = [];
    foreach ($arr['INTC']['Cost of revenue'] as $key=>$cost) {
        $result = preg_match($pattern, $key, $matches);
        if ($result) {
            $year = $matches[1];
            if ($year >= $fromyear && $year <= $toyear)
            $costs[] = ['Jahr'=>$year, 'Kosten'=>$cost];
        }
    }
    var_dump($arr);
    var_dump($costs);
Aus dem Array $costs kannst Du dann die Tabelle aufbauen, wie Du sie brauchst.
 

123user123

Mitglied
Unendlichen dank dafür, nun werde ich mich der tabelle widmen und dem schreiben der Daten in eine Datenbank.

Nochmals vielen dank.
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…