【问题标题】:Undefined Offset Error on Previous/Next Array上一个/下一个数组上的未定义偏移错误
【发布时间】:2021-01-11 07:59:31
【问题描述】:

前面的下一个链接使用下面的代码。但是,当我到达数组的开头或结尾时,我的链接会产生 UNDEFINED OFFSET 错误。我试过放置isset(),但我不知道如何使用它在开始或结束时停止。我尝试使用if / else if 来测量当前页面的总数组,但无法弄清楚。非常感谢任何帮助。谢谢。

<?php

$currentPage = array_search(current((object) array($keyword)), array_column($totalNodes, 'keyword'));

echo '<p>Current Page: ' . $currentPage . '</p>';

$nextPage = $totalNodes[$currentPage - 1]->keyword . PHP_EOL;
$nextTitle = $totalNodes[$currentPage - 1]->title . PHP_EOL;

$prevPage = $totalNodes[$currentPage + 1]->keyword . PHP_EOL;
$prevTitle = $totalNodes[$currentPage + 1]->title . PHP_EOL;

?>

<p>
<a href="/blog/<?= $nextPage ?>">Next</a>
   <a href="/blog/<?= $nextPage ?>"><?= $nextTitle ?></a>
</p>

<p>
   <a href="/blog/<?= $prevPage ?>">Prev</a>
   <a href="/blog/<?= $prevPage ?>"><?= $prevTitle ?></a>
</p>

【问题讨论】:

    标签: php pagination undefined offset isset


    【解决方案1】:

    如果问题是您访问的职位不存在,您可以尝试array_key_exists()

    if (array_key_exists($currentPage - 1, $totalNodes)) {
        // the previous index exist
    }
    
    if (array_key_exists($currentPage + 1, $totalNodes)) {
        // the next index exist
    }
    

    有一个类似的问题here

    【讨论】:

      【解决方案2】:

      成功了!

      if (array_key_exists($currentPage + 1, $totalNodes)) {
         $prevPage = $totalNodes[$currentPage + 1]->keyword . PHP_EOL;
         $prevTitle = $totalNodes[$currentPage + 1]->title . PHP_EOL;
      }
      
      if (array_key_exists($currentPage - 1, $totalNodes)) {
         $nextPage = $totalNodes[$currentPage - 1]->keyword . PHP_EOL;
         $nextTitle = $totalNodes[$currentPage - 1]->title . PHP_EOL;
      }
      
      // and then added this for the links
      
      if (isset($prevPage)) {
      // if $prevPage is set, show the link
      echo '<a href="/blog/' . $prevPage . '">&larr; Prev: ' . $prevTitle . '</a>';
      }
      
      if (isset($nextPage)) {
      //// $nextPage is set, show the link
         echo '<a href="/blog/' . $nextPage . '">Next: ' . $nextTitle . ' &rarr;</a>';
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-09
        • 2020-02-17
        • 2015-11-24
        相关资源
        最近更新 更多