将查询结果转换为二维数组

I want to convert my query result to two dimensional array the query is

SELECT c.name,c.mobile_number,t.service_time 
FROM CUSTOMER AS c
JOIN TRANSACTION AS t ON c.id = t.customer_id
WHERE t.service_date = '$date' 
AND employee_id = '$employee_id

I get name(varchar),mobile num(int) and time which is time format. I wrote some code but it is not working:

$results = array();
echo $num_fields=mysqli_num_fields($array1);
echo $num_rows=mysqli_num_rows($array1);
while($line = mysqli_fetch_array($array1))
{
    for($i=0;$i<$num_rows;$i++)
    {
        for($j=0;$j<$num_fields;$j++)
        {
            $results[$i][$j]=$line[$i][$j];
        }
        }
}

The result I am getting is:

[["k ","a ","r "],["9 ","8 ","7 "],["0 ","2 ",": "]]

The output contains only first characters that to one. I want each row of two dimensional array to have row of my query result.

You can just add the result to a new array and change mysqli_fetch_array to mysqli_fetch_row:

$results = array();

while ($line = mysqli_fetch_row($array1))
{
  $results[] = $line;
}

Alternatively you can use mysqli_fetch_assoc() to make for an associative array (e.g. $results[0]['name'] will be the name column of the first row).

Edit

If there are duplicate column names you can use aliases:

SELECT one.name AS one_name, two.name AS two_name FROM one INNER JOIN two USING ...

The associative array will then have $result[0]['one_name'] and $result[0]['two_name'].

try this:

while($line = mysqli_fetch_row($array1))
{
    array_push($result, $line);
}

This should do it

$con = mysqli_connect("localhost","my_user","my_password","my_db");
$result = mysqli_query($con, "SELECT * FROM .....");
$rows = array();
if($result){
    while($row = mysqli_fetch_assoc($con, $result)){
        array_push($rows, $row);
    }
    mysqli_free_result($result);
}
var_dump($rows);