Php 如何查找数组的最后一项?

Php 如何查找数组的最后一项?,php,Php,我有一个包含三个对象的数组: Ob1 Ob2 Ob3 我尝试了以下方法: $args = array('child_of' => 184); $categories = get_the_category($post->ID, $args); $i = 0; $len = count($categories); foreach($categories as $cat) { if ($i == 0) { echo '<li><h2><

我有一个包含三个对象的数组:

Ob1
Ob2
Ob3
我尝试了以下方法:

$args = array('child_of' => 184);
$categories = get_the_category($post->ID, $args);
$i = 0;
$len = count($categories);
foreach($categories as $cat) {
    if ($i == 0) {
        echo '<li><h2><a href="'.get_category_link($cat->cat_ID).'">'.$cat->name.', </a></h2></li>';
    } else if ($i == $len - 2) {
        echo '<li><h2><a href="'.get_category_link($cat->cat_ID).'">'.$cat->name.'</a></h2></li>';
    }
    $i++;
}
基本上,如果它是最后一项,我不想要逗号,但我不确定代码有什么问题,为什么它只显示两个值

如果我这样做:

var_dump($len);

它为我提供了
int(3)

您只希望您的
$i
条件逻辑应用于
$len-1

最简单的方法是简单地交换条件并将其偏移1:

foreach($categories as $cat) {
  if ($i == $len - 1) {
    echo '<li><h2><a href="'.get_category_link($cat->cat_ID).'">'.$cat->name.'</a></h2></li>';
  } else {
    echo '<li><h2><a href="'.get_category_link($cat->cat_ID).'">'.$cat->name.', </a></h2></li>';
  }
  $i++;
}
foreach($categories as$cat){
如果($i==$len-1){
回音“
  • ”; }否则{ 回音“
  • ”; } $i++; }
    您只希望您的
    $i
    条件逻辑应用于
    $len-1

    最简单的方法是简单地交换条件并将其偏移1:

    foreach($categories as $cat) {
      if ($i == $len - 1) {
        echo '<li><h2><a href="'.get_category_link($cat->cat_ID).'">'.$cat->name.'</a></h2></li>';
      } else {
        echo '<li><h2><a href="'.get_category_link($cat->cat_ID).'">'.$cat->name.', </a></h2></li>';
      }
      $i++;
    }
    
    foreach($categories as$cat){
    如果($i==$len-1){
    回音“
  • ”; }否则{ 回音“
  • ”; } $i++; }