導航:首頁 > 編程語言 > php打亂數組順序

php打亂數組順序

發布時間:2023-05-23 22:18:17

『壹』 php中有沒有辦法可以隨機打亂數組

當然可以,php是最好的語言!可以自己封裝打亂的演算法,也可以使用官方提供的函數shuffle就可以打亂數組信息了,具體用法可以參考官方手冊,講得非常詳細,希望能幫到你。

『貳』 PHP怎麼隨機獲取數組裡面的值

需要准備的材料分別是:電腦、php編輯器、瀏覽器。

1、首先,打開php編輯器,新建php文件,例如:index.php,並定義一個數組。

『叄』 PHP產生不重復隨機數的5個方法總結

無論是Web應用,還是WAP或者移動應用,隨機數都有其用武之地。在最近接觸的幾個小項目中,我也經常需要和隨機數或者隨機數組打交道,所以,對於PHP如何產生不重復隨機數常用的幾種方法小結一下(ps:方法1、4、5是我常用的,其餘來自網路整理)
方法一:
復制代碼
代碼如下:
<?php
$numbers
=
range
(1,50);
//shuffle
將數組順序隨即打亂
shuffle
($numbers);
//array_slice
取該數組中的某一段
$num=6;
$result
=
array_slice($numbers,0,$num);
print_r($result);
?>
方法二:
復制代碼
代碼如下:
<?php
$numbers
=
range
(1,20);
//播下隨機數發生器種子,可有可無,測試後對結果沒有影響
srand
((float)microtime()*1000000);
shuffle
($numbers);
//跳過list第一個值(保存的是索引)
while
(list(,
$number)
=
each
($numbers))
{
echo
"$number
";
}
?>
方法三:
復制代碼
代碼如下:
<?php
function
NoRand($begin=0,$end=20,$limit=5){
$rand_array=range($begin,$end);
shuffle($rand_array);//調用現成的數組隨機排列函數
return
array_slice($rand_array,0,$limit);//截取前$limit個
}
print_r(NoRand());
?>

上述可以在1-20間隨機產生5個不重復的值
方法四:
復制代碼
代碼如下:
<?php
$tmp=array();
while(count($tmp)<5){
$tmp[]=mt_rand(1,20);
$tmp=array_unique($tmp);
}
print_r($tmp);
?>
方法五:
復制代碼
代碼如下:
<?php
$tmp
=
range(1,30);
print_r(array_rand($tmp,10));
?>
這個可能是比叫簡單的了(ps:如果在range中指定了步長,就必須注意array_rand的第二個參數是否超出$tmp的長度)。
PHP提供非常豐富的數組函數,產生隨機數大多可以從數組這個角度出發,若你還有方法提供,歡迎給出,文章將持續更新。

『肆』 在php中怎麼排序鍵值數組

array_change_key_case -- 返回字元串鍵名全為小寫或大寫的數組
array_chunk -- 將一個數組分割成多個
array_combine -- 創建一個數組,用一個數組的值作為其鍵名,另一個數組的值作為其值
array_count_values -- 統計數組中所有的值出現的次數
array_diff_assoc -- 帶索引檢查計算數組的差集
array_diff_uassoc -- Computes the difference of arrays with additional index check which is performed by a user supplied callback function.
array_diff -- 計算數組的差集
array_fill -- 用給定的值填充數組
array_filter -- 用回調函數過濾數組中的單元
array_flip -- 交換數組中的鍵和值
array_intersect_assoc -- 帶索引檢查計算數組的交集
array_intersect -- 計算數組的交集
array_key_exists -- 檢查給定的鍵名或索引是否存在於數組中
array_keys -- 返回數組中所有的鍵名
array_map -- 將回調函數作用到給定數組的單元上
array_merge_recursive -- 遞歸地合並兩個或多個數組
array_merge -- 合並兩個或多個數組
array_multisort -- 對多個數組或多維數組進行排序
array_pad -- 用值將數組填補到指定長度
array_pop -- 將數組最後一個單元彈出(出棧)
array_push -- 將一個或多個單元壓入數組的末尾(入棧)
array_rand -- 從數組中隨機取出一個或多個單元
array_rece -- 用回調函數迭代地將數組簡化為單一的值
array_reverse -- 返回一個單元順序相反的數組
array_search -- 在數組中搜索給定的值,如果成功則返回相應的鍵名
array_shift -- 將數組開頭的單元移出數組
array_slice -- 從數組中取出一段
array_splice -- 把數組中的一部分去掉並用其它值取代
array_sum -- 計算數組中所有值的和
array_udiff_assoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function.
array_udiff_uassoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also
array_udiff -- Computes the difference of arrays by using a callback function for data comparison.
array_unique -- 移除數組中重復的值
array_unshift -- 在數組開頭插入一個或多個單元
array_values -- 返回數組中所有的值
array_walk -- 對數組中的每個成員應用用戶函數
array -- 新建一個數組
arsort -- 對數組進行逆向排序並保持索引關系
asort -- 對數組進行排序並保持索引關系
compact -- 建立一個數組,包括變數名和它們的值
count -- 統計變數中的單元數目
current -- 返回數組中的當前單元
each -- 返回數組中當前的鍵/值對並將數組指針向前移動一步
end -- 將數組的內部指針指向最後一個單元
extract -- 從數組中將變數導入到當前的符號表
in_array -- 檢查數組中是否存在某個值
key -- 從結合數組中取得鍵名
krsort -- 對數組按照鍵名逆向排序
ksort -- 對數組按照鍵名排序
list -- 把數組中的值賦給一些變數
natcasesort -- 用「自然排序」演算法對數組進行不區分大小寫字母的排序
natsort -- 用「自然排序」演算法對數組排序
next -- 將數組中的內部指針向前移動一位
pos -- 得到數組當前的單元
prev -- 將數組的內部指針倒回一位
range -- 建立一個包含指定范圍單元的數組
reset -- 將數組的內部指針指向第一個單元
rsort -- 對數組逆向排序
shuffle -- 將數組打亂
sizeof -- count() 的別名
sort -- 對數組排序
uasort -- 使用用戶自定義的比較函數對數組中的值進行排序並保持索引關聯
uksort -- 使用用戶自定義的比較函數對數組中的鍵名進行排序
usort -- 使用用戶自定義的比較函數對數組中的值進行排序

『伍』 打亂數組順序

沒有太理解這道題的中心思想是什麼,要求是打亂數組的緩孝仔排列順序,返回每種排列的概擾汪率都一樣。

示例:

// 以數字集合 1, 2 和 3 初始化數組。

int[] nums = {1,2,3};

Solution solution = new Solution(nums);

// 打亂數組 [1,2,3] 並返回結果。任何 [1,2,3]的排列返回的概率應該相同。

solution.shuffle();

// 重設數組到它的初始狀態[1,2,3]。

solution.reset();

// 隨機返回數組[1,2,3]打亂後的結果。

solution.shuffle();

做法倒也慎搭是不難,重設數組就返回原數組就完了,隨機返回打亂數組就:

1.從N個數中隨機取一個數放在第一個位置

2.從剩下N-1個數中隨機取一個數放在第二個位置。

3.依次放完每一個數。

class Solution {

        private int[] nums;

        private int[] originalNums;

    public Solution(int[] nums) {

        this.nums = nums;

        this.originalNums = Arrays.Of(nums, nums.length);

    }

    public int[] reset() {

        return this.originalNums;

    }

    public int[] shuffle() {

        Random random = new Random();

        int len= nums.length;

        while (len> 1) {

            int k = random.nextInt(len);

            //這里可以合並成swap(nums, --len, k);

            swap(nums, len- 1, k);

            len--;

        }

        return nums;

    }

    private void swap(int[] nums, int i, int j) {

        int tmp = nums[i];

        nums[i] = nums[j];

        nums[j] = tmp;

    }

}

『陸』 php刪除數組中的一個元素,其他元素的順序會改變嗎

順序的話,少了一個肯定向前啊。
如果是鍵值,那麼鍵值也不會改變。
(好像你在排隊一下,少一個人肯定後面的向前走,不會出現什麼順序打亂之類的。)

如果你用的特定函數,比如array_shift() 函數的話(並且鍵值是自己設定的話,就不會改變鍵名;如果自動生成,會幫你重新排列鍵名,順序不管怎麼樣都不會打亂,最多就是鍵名打斷;除非這個函數說了,會隨即打亂排序,那就會打亂咯。)

-----------
不採納?我繼續補充~

例如:
鍵值:1 2 3 4 5
對應:A B C D E
如果我用unset 刪除了鍵值為4的D,那麼,數組的排序就是:
鍵值:1 2 3 5
對應:A B C E
也就是少了一個數

如果這回我用的array_shift()函數刪除鍵值為4的D,結果就是:
鍵值:0 1 2 3
對應:A B C E
它自動從0開始把鍵值重新排序。

如果不出意外的情況下,鍵值是直接對應具體的值的。也就說,鍵值位置的改變,值也會設置而變。

求採納T_T

『柒』 如何將php數組,打亂順序並定位

用一個數組存資料,再用隨機數控制數組下標來做

『捌』 如何打亂一組數的順序

方法一: 把這10個數字寫成10個卡片,像洗撲克牌一樣打亂,隨便抽。

方法二:把這10個數編號銀激,然後用random得到1到10之間的一個此搏悉隨機數n1,將編號為n1的的數排在第一森乎,然後將剩餘的9個數從1到9排序,用random得到1到9之間的一個隨機數n2,將編號為n2的的數排在第二,依次類推。

『玖』 php中給出一組數組,要求把這組數據打亂順序後輸出,而且不能重復!!請高手幫忙呀!

你要代碼還是演算法啊?
我就直接說下大概演算法好了
假設有個數組裡面有10個數字
然後你來個循環,10個數字10次也差不多了
for($i=0;$i<10;$i++){
$a1=rand(0,9);//隨機0到9的數字的
$a2=rand(0,9);
/*
*其實就是調換2個數字
*/
$j=$array[$a1];
$array[$a1]=$array[$a2];
$array[$a2]=$j;
}
循環十次,基本都打亂了,你的打亂沒什麼要求,所以這樣應該符合要求了

『拾』 php的數組怎麼打亂順序

shuffle — 將數組打亂

閱讀全文

與php打亂數組順序相關的資料

熱點內容
抖音演算法到底是什麼 瀏覽:126
哪個vlan技術對報文加密 瀏覽:570
單片機定時電路 瀏覽:672
山西平台伺服器雲主機 瀏覽:700
按摩肚臍解壓視頻 瀏覽:989
php55安裝教程 瀏覽:137
雲伺服器怎麼查找本機域名 瀏覽:22
qd123y壓縮機參數 瀏覽:385
程序員媽媽懷孕 瀏覽:490
金普國際編程 瀏覽:537
java什麼是引用類型 瀏覽:944
這是命令嗎txt 瀏覽:314
支付寶android包名 瀏覽:154
eclipsemaven命令 瀏覽:68
24路伺服器配什麼cpu 瀏覽:466
壓縮文件和解壓文件哪個快 瀏覽:675
亞馬遜雲伺服器視頻通話 瀏覽:912
金融知識app哪個好 瀏覽:978
農行理財app收益在哪裡 瀏覽:969
暗淡的命令名項目表示該命令 瀏覽:212