我已经从mysql数据库创建了一个数据数组。这就是该数组的样子:
// Fetch all the records:
while ($stmt->fetch()) {
$output = "<a>\n";
$output .= "<h3>{$product_name}</h3>\n";
$output .= "<span class='price'><span class='amount'>BD.{$price}</span></span>\n";
$output .= "</a>\n";
$output .= "<div class='short_desc'>\n";
$output .= "$product_des\n";
$output .= "</div>\n";
//Add output to array
$products[] = $output;
}
因为我想在while
循环之外使用这个数组值,这就是我在页面中使用这个$products[]
数组的方法。
echo $products[0];
echo $products[1];
echo $products[2];
echo $products[3];
我的问题是,如果此$products[]
数组有一个结果集,我可能会收到错误。
我的错误信息是这样的:脚本中发生错误 &#39; C:\瓦帕\ WWW \计算机\的index.php&#39;第208行:未定义的偏移量:2
所以我尝试使用array_key_exists()
函数来解决这个问题,就像这样对每个echo:
if(!empty($products) && array_key_exists("$products[1]", $products)) echo $products[1]; else echo "No Product";
但我仍然可以得到错误。谁能告诉我这有什么问题?
谢谢。
答案 0 :(得分:0)
您可能需要以下内容:
if( ! empty($products) ) {
$ids = array(0, 1, 2, 3, 4, 5);
foreach ( $ids as $id ) {
if ( ! empty($products[$id]) ) echo $products[$id];
}
} else {
echo "No Product";
}
答案 1 :(得分:0)
根据the documentation,函数array_key_exists()
具有以下签名:
bool array_key_exists ( mixed $key , array $array )
也就是说:如果bool
(TRUE
,FALSE
为$key
,它将返回index
(1
或5
) $array
中存在array_key_exists(1, $products)
。{/ p>
因此,您所接受的语法是:
empty()
然而,也许更直接的是使用isset()
或if (!empty($products[0])) echo $products[0];
// ...
if (!empty($products[5])) echo $products[5];
,这两种情况都适用于您的情况:
if (isset($products[0])) echo $products[0];
// ...
if (isset($products[5])) echo $products[5];
或者:
<!-- PRE-HTML -->
<?php if(!empty($products)) foreach((array) $products as $product) { ?>
<!-- Product-Specific PRE-HTML -->
<?php echo $product ?>
<!-- Product-Specific POST-HTML -->
<?php } /* End for loop */ ?>
<!-- POST-HTML -->
也可以做一个循环,包括HTML,并保持理智:
def save_referer
if cookies[:referer].blank?
cookies.permanent[:referer] = request.env["HTTP_REFERER"] || 'none'
end
end
答案 2 :(得分:0)
如果要访问阵列中的单个索引而未收到通知,则必须检查密钥是否存在。
您可以使用isset(http://php.net/manual/de/function.isset.php):
if(isset($products[0]))
{
echo "yes, the key 0 is set within $products";
}
如果要获取阵列中的所有条目,请使用foreach。
foreach($products as $product)
{
echo $product;
}