要恢復(fù)打亂后 php 數(shù)組的原始順序,可使用以下步驟:使用 shuffle() 打亂數(shù)組順序。使用 ksort() 恢復(fù)原始順序。
PHP 數(shù)組打亂順序后恢復(fù)原順序
有時候我們需要對 PHP 數(shù)組進行打亂操作,比如偽隨機抽樣。然而,在某些情況下,我們可能需要恢復(fù)數(shù)組的原始順序。
使用 shuffle()
和 ksort()
shuffle()
函數(shù)可以隨機打亂數(shù)組元素的順序。要恢復(fù)原始順序,我們可以使用 ksort()
函數(shù)。
<?php $array = [1, 3, 2, 5, 4]; // 打亂順序 shuffle($array); // 恢復(fù)原始順序 ksort($array); print_r($array); ?>
登錄后復(fù)制
輸出:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
登錄后復(fù)制
實戰(zhàn)案例:
假設(shè)我們有一個包含學(xué)生成績的數(shù)組:
$grades = [ 'Alice' => 90, 'Bob' => 85, 'Carol' => 95, 'Dave' => 80, 'Eve' => 92, ];
登錄后復(fù)制
如果我們想隨機抽取一名學(xué)生作為獎學(xué)金獲得者,我們可以使用 shuffle()
打亂數(shù)組的順序,然后取第一個元素。
shuffle($grades); $winner = array_shift($grades); echo "獎學(xué)金獲得者:$winner";
登錄后復(fù)制
輸出:
獎學(xué)金獲得者:Bob
登錄后復(fù)制
雖然我們打亂了數(shù)組的順序,但 ksort()
函數(shù)可以讓我們在抽取贏家后恢復(fù)數(shù)組的原始順序。