我有一个二维数组,我想用while循环将值推送到它;

   $arr[0][1] = 1. value
   $arr[0][2] = 2. value

我试过了
   while($zRow = mysql_fetch_array($zQuery))
    {
     $props[]['name'] =$zRow['name'];
     $props[]['photo'] =$zRow['thumbnail'];
    }

此循环将名称推送到$ props [0] [name],将缩略图推送到$ props [1] [photo]

我也试过了
   $j = 0;
   while($zRow = mysql_fetch_array($zQuery))
    {
     $props[$j]['name'] =$zRow['name'];
     $props[$j]['photo'] =$zRow['thumbnail'];
     $j+=1;
    }

可以,但是与此有关,当我稍后使用foreach循环时,这会引起麻烦,例如“非法偏移类型”

这是我的foreach循环
    foreach($props as $no)
    {
      echo $props[$no]['name'];
    }

现在我的问题;
1)除了使用$ j变量的while循环外,还有什么其他方法,例如用于二维数组的array_push
2)我如何使用foreach循环来处理二维数组

最佳答案

您可以将第一个循环更改为以下内容:

while($zRow = mysql_fetch_array($zQuery))
{
    $row = array();
    $row['name'] = $zRow['name'];
    $row['photo'] = $zRow['thumbnail'];
    $props[] = $row;
}

您的方法也可以,但是您需要该额外的变量。

在第二个循环中,您实际需要做的是:
foreach($props as $index => $array)
{
    echo $props[$index]['name'];
    // OR
    echo $array['name'];
}

关于PHP将值插入二维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9153444/

10-12 00:00