PHP將數組打亂,保留鍵名

王林
發布: 2024-03-21 13:48:01
轉載
1004 人瀏覽過

php小編新一為您介紹一個有趣的陣列操作方法-打亂陣列並保留鍵名。在PHP中,透過shuffle函數可以輕鬆實現數組元素的隨機排列,但會重新分配索引。如果想要保留原有鍵名,可以先使用array_keys函數取得鍵名數組,再將其與值數組一起打亂,最後透過array_combine函數重新組合成新數組。這樣就可以在保留鍵名的同時實現數組元素的隨機排列了!

PHP 打亂數組,保留鍵名

php 中,使用 shuffle() 函數可以打亂陣列的順序,但不會保留鍵名。要保留鍵名,可以使用下列方法:

方法 1:使用 array_rand()

$array = ["a" => 1, "b" => 2, "c" => 3];

$keys = array_rand($array);
$shuffled_array = [];

foreach ($keys as $key) {
$shuffled_array[$key] = $array[$key];
}
登入後複製

方法 2:使用 mt_rand()

$array = ["a" => 1, "b" => 2, "c" => 3];

$keys = array_keys($array);
shuffle($keys);

$shuffled_array = [];

foreach ($keys as $key) {
$shuffled_array[$key] = $array[$key];
}
登入後複製

方法 3:使用第三方函式庫

第三方函式庫,如 ArrayLib,提供了更方便的方法來打亂數組,保留鍵名:

use ArrayLibArrays;

$array = ["a" => 1, "b" => 2, "c" => 3];

$shuffled_array = Arrays::shuffle($array);
登入後複製

效能比較

這三種方法的效能有差異:

  • array_rand() 在小數組中表現最佳,但在大型陣列中效率較低。
  • mt_rand() 在所有陣列大小中都表現良好。
  • 第三方函式庫一般比原生 PHP 函數效能更好。

使用場景

打亂數組,保留鍵名在​​以下場景中很有用:

  • 當需要打亂數組中的元素順序,同時仍然需要存取每個元素的鍵時。
  • 當需要產生隨機播放清單或其他依序排列的項目清單時。
  • 當需要對數組中的資料進行隨機抽樣時。

注意事項

  • array_rand()mt_rand() 會傳回一個鍵,而不是值。需要使用 $array[$key] 來取得值。
  • 第三方函式庫可能需要安裝才能使用。
  • 確保在打亂數組之前先複製數組,以避免修改原始數組。

以上是PHP將數組打亂,保留鍵名的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:lsjlt.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!