为什么我的阵列打印阵列的输出?

时间:2014-10-02 17:18:58

标签: php arrays

我正在使用db查询的结果来填充数组。如果我在数组上执行var_dump,它看起来很好。但是,如果我尝试通过回显$myArray[0]或数组中的任何其他元素来访问数组的元素,那么我得到的只是array

以下是我的代码的摘录。

$losers = array();
if ($result=mysqli_store_result($con))
  {
  while ($row=mysqli_fetch_row($result))
    {
    //printf("%s\n",$row['Winner']);
    if($row[0]!= "MLB"){
    $data[] = $row;

    echo $row[0] . '<br />';

我在使用echo元素的行,没有问题,它没问题。以下是我的var_dump

的结果
array(4) { [0] => array(4) { [0] => string(3) "MLB" [1] => string(15) "Cincinnati Reds" [2] => string(4) "-137" [3] => string(88) "images/mlb/cred.jpg" } [1] => array(4) { [0] => string(3) "MLB" [1] => string(15) "Minnesota Twins" [2] => string(4) "-128" [3] => string(88) "images/mlb/mtwi.jpg" } [2] => array(4) { [0] => string(3) "MLB" [1] => string(14) "Atlanta Braves" [2] => string(4) "-101" [3] => string(88) "images/mlb/Abra.jpg" } [3] => array(4) { [0] => string(3) "MLB" [1] => string(20) "Washington Nationals" [2] => string(4) "-140" [3] => string(88) "images/mlb/wnat.jpg" } }

当我使用echo显示数组的结果时会发生这种情况。

ArrayArrayArrayArrayArrayArrayArrayArrayArrayArray

1 个答案:

答案 0 :(得分:0)

这显然是因为元素0实际上是一个数组。当您尝试回显数组时,毫不奇怪,您会收到Array并发出警告。要打印数组,请使用print_r($array, true);

$losers = array();
if ($result=mysqli_store_result($con))
  {
  while ($row=mysqli_fetch_row($result))
    {
    //printf("%s\n",$row['Winner']);
    if($row[0]!= "MLB"){
    $data[] = $row;

    echo print_r($row[0], true) . '<br />';