簡體   English   中英

獲取php數組中的下一個值

[英]get next value in php array

我有一個數組,我想獲取下一個值。

$sorting = array(0 => "H 101", 1 => "S 101", 2 => "R 172", 3 => "D 141", 4 => "T 101", 5 => "K 101", 6 => "A 182", 7 => "G 101");

我有從SELECT語句中獲取的當前值。 我已經試過array_search,但我無法做到我想要的。

假設我的當前值為S 101,如何得到它給我“ R 172”作為下一個值,然后可以在新的SELECT語句中使用它。

如果當前值是最后一個值(G 101),我還希望它返回到第一個值(H 101)。

在腳本處理過程中,next()和prev()處理數組的內部指針。

$current_index = array_search($current_id, $array);

// Find the index of the next/prev items
$next = $current_index + 1;
$prev = $current_index - 1;

您的HTML:

<?php if ($prev > 0): ?>
    <a href="<?= $array[$prev] ?>">Previous</a>
<?php endif; ?>

<?php if ($next < count($array)): ?>
    <a href="<?= $array[$next] ?>">Next</a>
<?php endif; ?>

為什么要明確指定索引? 如果您不這樣做,這些將是相同的。

據我了解,array_search將適合您的需求。

$current = 'S 101';
$nextkey = array_search($current, $sorting) + 1;
if($nextkey == count($sorting)) {
    // reached end of array, reset
    $nextkey = 0;
}

$next = $sorting[$nextkey];

但是,如果我對您的理解正確,那么您正在遍歷此數組並對其進行查詢。 如何發布查詢結果方面的內容,因為可能會有更好的解決方案(例如MySQL IN()

在操作上,您可以通過這種方式檢索當前值的索引

$key = array_search($currValue, $sorting);

然后,您應該執行myNewValue = $sorting[($key+1)%8]或者,如果您不知道數組的大小,則必須執行myNewValue = $sorting[($key+1)%(count($sorting)+1)]

假設您知道不會離開數組的末尾並且輸入存在:

$sorting = array(0 => "H 101", 1 => "S 101", 2 => "R 172", 3 => "D 141", 4 => "T 101", 5 => "K 101", 6 => "A 182", 7 => "G 101");

$key = array_search("H 101", $sorting);
$returnValue = $sorting[$key + 1];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM