Previous/Next 数组上的未定义偏移错误
Undefined Offset Error on Previous/Next Array
前一个下一个链接使用下面的代码。但是,当我到达数组的开头或结尾时,我的链接会产生一个 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>
如果问题是您正在访问一个不存在的职位,您可以尝试 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。
这成功了!
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 . '">← Prev: ' . $prevTitle . '</a>';
}
if (isset($nextPage)) {
//// $nextPage is set, show the link
echo '<a href="/blog/' . $nextPage . '">Next: ' . $nextTitle . ' →</a>';
}
前一个下一个链接使用下面的代码。但是,当我到达数组的开头或结尾时,我的链接会产生一个 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>
如果问题是您正在访问一个不存在的职位,您可以尝试 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。
这成功了!
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 . '">← Prev: ' . $prevTitle . '</a>';
}
if (isset($nextPage)) {
//// $nextPage is set, show the link
echo '<a href="/blog/' . $nextPage . '">Next: ' . $nextTitle . ' →</a>';
}