SQL数组显示在没有SQL查询的行中

I am trying to test a few scripts that I would normally get from an SQL database but for testing offline I am just creating an array.

Here is what I have right now;

$result = array
(
    array("name"=>"Toby", "q1"=>"1"),
    array("name"=>"Phelps", "q1"=>"1"),
    array("name"=>"Davies", "q1"=>"1"),
    array("name"=>"Keith", "q1"=>"1"),
);

$resultnum = count($result);
echo "<b>Question 1</b> <br/><br/>";
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $name = $row['name'];
        $answer = $row['q1'];

        $q1answer = 1;

        if($answer == $q1answer) {
            echo $name . " got this right! <br/>";
        } else {
            echo $name . " got this wrong! <br/>";
        }

    }
}

How can I get this to work the same as though it was getting the array from an SQL query instead of just my array, for some reason I can't find a way to get this to run.

Similar to the earlier answer, I propose a class. Here I would actually name the class, and pass the data to the constructor. The iteration over the array can be done with the current and next methods:

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;
    }
}

Until there it would be fixed. You would play with the data in the following:

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

I did not implement support for count($result) as I don't think that is supported on real mysqli result sets either. You get the count via ->num_rows (like you also do).

You can wrap the array in an anonymous class. Single uses like this are a main reason they exist.

$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];
        }
    }
};