Отображение массива SQL в строках без запроса SQL

DataInputStream br=new DataInputStream(System.in);
System.out.println("input a number");
int n=Integer.parseInt(br.readLine(System.in));
1
задан Earl Grey 6 March 2019 в 18:18
поделиться

2 ответа

Вы можете обернуть массив в анонимный класс . Одноразовое использование, как это, является основной причиной их существования.

$result = new class {
    private $data = array
    (
        array("name"=>"Toby", "q1"=>"1"),
        array("name"=>"Phelps", "q1"=>"1"),
        array("name"=>"Davies", "q1"=>"1"),
        array("name"=>"Keith", "q1"=>"1"),
    );
    private $data_index = 0;
    public $num_rows;

    public function __construct() {
        $this->num_rows = count($this->data);
    }

    public function fetch_assoc() {
        if (isset($this->data[$this->data_index])) {
            $index = $this->data_index++;
            return  $this->data[$index];
        }
    }
};
0
ответ дан Don't Panic 6 March 2019 в 18:18
поделиться

Как и в предыдущем ответе, я предлагаю класс. Здесь я на самом деле назову класс и передам данные конструктору. Итерация по массиву может быть выполнена с помощью методов current и next:

class ResultSet {
    private $array = [];
    public $num_rows = 0;
    public function __construct($data) {
        $this->array = $data;
        $this->num_rows = count($this->array);
    }
    public function fetch_assoc() {
        $val = current($this->array);
        next($this->array);
        return $val;
    }
}

До тех пор, пока она не будет исправлена. Вы бы поиграли с данными в следующем:

$result = new ResultSet([
        ["name"=>"Toby",   "q1"=>"1"],
        ["name"=>"Phelps", "q1"=>"1"],
        ["name"=>"Davies", "q1"=>"1"],
        ["name"=>"Keith",  "q1"=>"1"],
    ]);

Я не реализовал поддержку count($result), так как не думаю, что она поддерживается и в реальных наборах результатов mysqli. Вы получаете счет через ->num_rows (как и вы).

0
ответ дан trincot 6 March 2019 в 18:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: