Untitled

 avatar
unknown
plain_text
2 years ago
2.0 kB
9
Indexable
<?php


class Reader
{


    protected $data;
    function read($dir)
    {
        //$this dir to array
    }
    function getData()
    {
        return $this->data;
    }
    function exportToArray()
    {
        $data=[];
        foreach ($this->data as $key => $value) {
       
            array_push($data, ((array)$value));
        }
        return $data;
    }

    function exportToTable()
    {
        $string = '<table>';
        foreach ($this->data as $key => $value) {
            $string .= "<tr>";
            foreach ($value as $k => $v) {
                $string .= "<td>$v</td>";
            }
            $string .= "</tr>";
        }
        $string .= '</table>';
        return $string;
    }
    function addRow($data)
    {

        $this->data[] = $data;
    }
    function removeRow(int $number)
    {
        unset($this->data[$number - 1]);
        return $this;
    }

    function special(int $row, string $option)
    {
        $data = $this->data[$row]; //cpy
        switch ($option) {
            case 'sort': {
                    sort($data);

                    $this->data[$row] = $data;
                    break;
                }
            case 'capitalize': {
                    foreach ($data as $key => $value)
                        $data[$key] = strtoupper($value);
                    $this->data[$row] = $data;

                    break;
                }
        }

        return $this;
    }
}

class JsonReader extends Reader
{
    function read($dir)
    {
        if (file_exists($dir)) {
            $this->data = json_decode(file_get_contents($dir));
        } else {
            $this->data = json_decode("$dir");
        }

        return $this;
    }
}

class CsvReader extends Reader
{
}

$json = new JsonReader();

$json->read(json_encode([['name' => 'younes', 'family' => 'mokhtari'], ['name' => 'younes', 'family' => 'mokhtari']]));
// var_dump($json->getData());
var_dump($json->exportToTable());
Editor is loading...