Php 二维数组的Foreach
我试图用foreach提取二维数组的值。 我有一个数组,例如:Php 二维数组的Foreach,php,arrays,Php,Arrays,我试图用foreach提取二维数组的值。 我有一个数组,例如: $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>";
$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>";
}
}
它打印这个:
<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>
您的
$ud
数组不是关联数组,因此它是由数字(0..n)和字符串索引的,而不仅仅是由字符串(“prc”等)索引的。因此,结果数组有两个值
如果数组是从SQL查询生成的,则应使用:
$ud=mysqli\u fetch\u assoc()
而不是mysqli\u fetch\u array()
更改您的
$arc = mysql_fetch_array($arc_q);
到
希望有帮助。由于它的数组来自一个查询,您有两个选择: 1-在“MYSQL\u fetch\u array”函数中添加MYSQL\u ASSOC参数 2-验证密钥是否为整数并跳过
我个人更喜欢第一种方法,不需要创建更多的代码此数组是SQL命令的结果?数组中是否填充了一种查询结果?用值显示数组。同时将foreach循环中的
$ud['arc']
更改为$ud['prc']
@Vinicius Monteiro Yes。数组$ud['arc']包含以下内容:$arc_q=mysql_query(“SELECT*FROMarc
WHERE user_ID='$ID')$arc=mysql\u fetch\u数组($arc\u q)$ud['arc']=$arc;对我来说工作很好,你是否在这个脚本上面打印任何表格、td或tr标签谢谢!它工作得很好!你能解释一下区别是什么吗?@user3209297函数mysql\u fetch\u assoc,它的作用几乎相同,只是它只带来字段名,而不带来索引。这与在MYSQL\u fetch\u arrayGot中添加参数MYSQL\u ASSOC是一样的。再次感谢你!
$arc_q= mysql_query("SELECT * FROM arc WHERE user_ID='$id'");
$arc = mysql_fetch_array($arc_q);
$ud['arc'] = $arc;
$arc = mysql_fetch_array($arc_q);
$arc = mysql_fetch_assoc($arc_q);