可能是一个基本的,但我写了一个函数,从后端的dbtable中选择所有。但是在前端,我希望将它与foreach一起使用,以便随时随地显示结果。
Array(
[0] => Array
(
[stockCatID] => 1
[stockCatName] => Copper
[stockParentCat] => 0
)
[1] => Array
(
[stockCatID] => 2
[stockCatName] => Zinc
[stockParentCat] => 0
)
)
当我将结果集发送到我的前端页面时,此数组显示出来。所以我基本上不能用它来播放:
<?php
$r = getAll("stockcategories");
foreach($r as $k=>$v) {
echo ("<p><strong>$k</strong>: $v</p>");
}
使用上面的结果数组iu输出:
0 = Array1 = Array
补充:我不想从后端函数回显。
所以最后这是我的功能:
<?php
function getAll ($tableName,$orderBy="", $limit="") {
$orderBy = $orderBy == "" ? $orderBy : (" ORDER BY =\"".$orderBy."\" ");
$limit = $limit == "" ? $limit : (" LIMIT =\"".$limit."\" ");
$q = mysql_query("SELECT * FROM $tableName $orderBy $limit");
if (!$q) { die('Could not connect: ' . mysql_error());} else { $num=mysql_numrows($q);
if ($num != 0 ) {
while($r = mysql_fetch_assoc($q)) {
$rArray[] = $r;
}
mysql_free_result($q);
return $rArray;
} else { echo '<span class="notification n-error">No Record Found</span>'; return false; }
}
?>
感谢您的帮助。
答案 0 :(得分:0)
正如您自己指出的那样,数组包含数组作为值。 $v
是一个包含密钥stockCatID
,stockCatName
和stockParentCat
的数组。尝试类似:
$r = getAll("stockcategories");
foreach($r as $record) {
foreach($record as $k=>$v) {
echo("<p><strong>$k</strong>: $v</p>");
}
echo("<hr/>");
}
答案 1 :(得分:0)
$rArray
是一个二维数组,但您只能在一个维度上访问它。您需要嵌套的foreach
循环。外部循环遍历返回的每一行,内部迭代每行中的列:
foreach ($r as $row) {
foreach($row as $k=>$v) {
echo ("<p><strong>$k</strong>: " . htmlspecialchars($v) . "</p>");
}
}
更新一个迭代两个维度的函数:
function printResults($resultArray) {
foreach ($resultArray as $row) {
foreach($row as $k=>$v) {
// Note sanitizing against XSS if this was user-input...
echo ("<p><strong>$k</strong>: " . htmlspecialchars($v) . "</p>");
}
}
}
将其命名为:
$r = getAll("stockcategories");
printResults($r);
答案 2 :(得分:0)
<?php
$outer_array = getAll("stockcategories");
foreach($outer_array as $inner_array) {
foreach($inner_array as $k => $v {
echo "<p><strong>$k</strong>: $v</p>";
}
}
你有一个数组数组,你的循环只遍历外部数组。
答案 3 :(得分:0)
或者你可以在这样的循环中完成:
foreach($r as $row) {
echo ("<p><strong>$row['stockCatName']</strong>: $row['whatever']</p>");
}
确实取决于你需要的输出。