从结果数组中获取变量,为什么我不能得到超过1

时间:2013-12-07 13:41:02

标签: php mysql arrays variables foreach

好吧我的问题如下,基本上我要做的是构建href并将类别主题名称放入<h2>...</h2>到目前为止我只能使用{{1}放置类别名称}变量但不能对我的其他变量执行相同的操作,例如$key$category_topic['category_folder']

需要一些帮助!

$category_topic['category_page']

添加while ($category_topic = $resc -> fetch()){ $result[$category_topic['category_name']][] = $category_topic; } foreach ($result as $key => $value){ $category_topic_name = str_replace("&", "and", $key); $category_topic_url = DST.$category_topic['category_folder'].DS.$category_topic['category_page']; print <<<END <div class="by_cat"> <h2 class="h_unln"><a class="more_templ" href="$category_topic_url">$category_topic_name</a></h2> <ul class="cat_tmp_list"> END; 后,我收到以下内容

print_r($category_topic);

但如何将结果写入变量我不知道。

拜托,请帮助。

2 个答案:

答案 0 :(得分:1)

因为您正在查看$category_topic,所以这是您在while循环中提供的名称。那个变量将等于该循环的最后一次迭代。

你的foreach循环应如下所示:

foreach ($result as $key => $value){
    $category_topic_name = str_replace("&", "and", $key);
    $category_topic_url = DST.$value['category_folder'].DS.$value['category_page'];
print <<<END
<div class="by_cat">
<h2 class="h_unln"><a class="more_templ" href="{$category_topic_url}">{$category_topic_name}</a></h2>
<ul class="cat_tmp_list">
END;

注意我是如何将$ categoryValue更改为$ value的,因为在foreach循环中,您将每次迭代分配给$ key =&gt; $ value,以便该数组存储在每个循环的$value

即如果您说foreach ($result as $foo => $bar),您将使用$bar

希望这有帮助!

答案 1 :(得分:0)

好的,所以我现在已经想好了,这是我的答案。

在我的第一种方法中,我只访问了第一个数组值(对象)是另一个数组。因此,要访问第二个数组“子数组”,我添加了另一个foreach,所以我的整个语句现在看起来如下,最重要的是一切正常。

foreach ($result as $key => $value){
    foreach ($value as $k2 => $v2){
    $category_topic_name = str_replace("&", "and", $v2['category_name']);
    $category_topic_url = DST.$v2['category_folder'].DS.$v2['category_page'];
    }
print <<<END
<div class="by_cat">
<h2 class="h_unln"><a class="more_templ" href="{$category_topic_url}">{$category_topic_name}</a></h2>
<ul class="cat_tmp_list">
END;