-1

我目前在我的single.php文件中使用以下内容来列出我的帖子所属的父类别和子类别:

foreach((get_the_category()) as $category) { 
    echo '<h1>'.$category->cat_name . '</h1>'; 
}

所以这导致: <h1>Events</h1><h1>News</h1>

但是,我想将每个<h1>值存储在一个单独的变量中。

所以我的最终代码可能是:

$i1 = "<h1>Events</h1>"; 
$i2 = "<h1>News</h1>";

我该怎么做呢?

4

3 回答 3

6

您想使用“变量变量”:

$j = 1;
foreach((get_the_category()) as $category) { 
    $i{$j} = '<h1>' . $category->cat_name . '</h1>';
    $j++;
}

但是,我只会使用一个数组:

$i = array();
foreach((get_the_category()) as $category) { 
    $i[] = '<h1>' . $category->cat_name . '</h1>'; 
}
于 2012-10-08T18:24:37.220 回答
1

您可以使用array_map将所有返回cat_name数组...您也可以使用 list 将它们分隔为 2 个不同的变量

# List Of Name form array
$categories = array_map(function($category){ return "<h1>" . $category->cat_name . "</h1>";}, get_the_category());

# List Name to diffrent varraibles 
list($i1,$i2) = $categories ;
于 2012-10-08T18:23:58.750 回答
0

你可以这样做:

$n = 0;
foreach((get_the_category()) as $category) { 
    $i{$n} = '<h1>'.$category->cat_name . '</h1>'; 
    $n++;
}

看看这本手册。不过这很奇怪,可能会使您的代码混乱(我不建议这样做。为什么不使用数组代替呢?

$categories = array();
$n = 0;
foreach((get_the_category()) as $category) { 
    $categories[$n] = '<h1>'.$category->cat_name . '</h1>';
    $n++;
}
于 2012-10-08T18:27:03.547 回答