我正试图用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;
答案 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 - 验证密钥是否为整数并跳过
我个人更喜欢第一种,不需要创建更多代码