PHP:从函数中访问二维数组

时间:2012-12-23 23:26:15

标签: php arrays function 2d multidimensional-array

您好我无法弄清楚如何访问函数返回的二维数组。

我的函数query($query)位于 Connection 类(Connection.php内):

public function query($query)
  {
      $result = mysql_query($query);

       $array= array();
      for($i=0; $i<mysql_num_rows($result); $i++)
      {
       $row = mysql_fetch_array($result);
       for($j=0;$j<(sizeof($row)/2);$j++)
       {
         $array[i][j]=$row[$j];
       }
      }
      return $array;
    }

和我的test.php文件:

<?php
include 'Connection.php';

$obj1 = new Connection();
echo $obj1->toString();

$array=$obj1->query("SELECT * FROM LeCars ORDER BY ID;");
echo $array[0][0];
echo 'asd:',$array[0][0],'<br>';
echo 'asd:',$array[0][1],'<br>';
echo 'asd:',$array[0][2],'<br>';
echo 'asd:',$array[1][0],'<br>';
echo 'asd:',$array[2][4],'<br>';
var_export($array);

&GT;

test.php的输出:

知识产权:194.00.00.27 登录:asd123 密码:asd123 表:asdasd1123 查询:asd: ASD: ASD: ASD: ASD: array('i'=&gt; array('j'=&gt; NULL,),)

Any1知道如何正确地将该数组发送到test.php吗?

我尝试过:循环播放,通过引用发送,双重检查数组rly是否正常工作(确实如此),但我无法将其发送到测试并在那里访问

2 个答案:

答案 0 :(得分:0)

mysql_query()不返回二维数组。它返回'resource',这意味着它不是一个php类型的对象。您可以使用特殊功能对其进行操作。

请参阅此处的文档和示例:http://php.net/manual/en/function.mysql-query.php

答案 1 :(得分:0)

首先,toString()应该只返回该字符串值,而不是打印它。

然后,从函数返回的二维数组就像普通的二维数组一样 - 你没有尝试过:

$array=$obj1->query("SELECT * FROM LeCars ORDER BY ID;");
echo $array[0][0];

另请考虑阅读PHP手册中的“foreach”和“count”。