使用2D阵列的Foreach

时间:2014-01-29 11:23:21

标签: php arrays

我正试图用foreach取出2D数组的值。 我有这个数组,例如:

$ud['prc']['col1']
$ud['prc']['col2']
....

我的循环:

foreach ($ud['arc'] as $name => $rank)  {
    if ($name != 'user_ID') {
        echo "<tr><td>{$name}</td><td>{$rank}</td></tr>";
    }
}

此代码出于某种原因首先打印一个包含数组编号的表格行(名称为“0”($ud['prc']['0'])而不是其真实姓名“col1”)< / p>

而不是打印我:

 <tr><td>col1</td><td>value of col1</td></tr>
 <tr><td>col2</td><td>value of col2</td></tr>
 <tr><td>col3</td><td>value of col3</td></tr>

打印出来:

 <tr><td>0</td><td>value of col1</td></tr>
 <tr><td>col1</td><td>value of col1</td></tr>
 <tr><td>1</td><td>value of col1</td></tr>
 <tr><td>col2</td><td>value of col2</td></tr>
 <tr><td>2</td><td>value of col1</td></tr>
 <tr><td>col3</td><td>value of col3</td></tr>

我真的希望我能够解释得很好,如果没有评论,请告诉我你不理解的内容,以便我能向你解释。

我将它与MySQL结合使用

这是我的MySQL代码:

$ud['arc']数组包含:

$arc_q= mysql_query("SELECT * FROM arc WHERE user_ID='$id'"); 
$arc = mysql_fetch_array($arc_q); 
$ud['arc'] = $arc;

3 个答案:

答案 0 :(得分:1)

您的$ud数组不是关联数组,因此它也被数字(0..n)和字符串索引,而不仅仅是字符串('prc'等等)。所以你的结果数组有双重值。

如果您的数组是从SQL查询生成的,那么您应该使用:

$ud = mysqli_fetch_assoc()代替mysqli_fetch_array()

答案 1 :(得分:0)

更改您的

$arc = mysql_fetch_array($arc_q);

$arc = mysql_fetch_assoc($arc_q);

希望它有所帮助。

答案 2 :(得分:0)

由于它的数组来自查询,因此您有两个选择:

1 - 在“mysql_fetch_array”函数中添加MYSQL_ASSOC参数

2 - 验证密钥是否为整数并跳过

我个人更喜欢第一种,不需要创建更多代码