亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 45
粉絲 3
評論 0
訪問量 56684
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
PHP常用的數(shù)組函數(shù)
殘破的蛋蛋
原創(chuàng)
2022人瀏覽過

PHP常用的數(shù)組函數(shù)

一、array_diff 計(jì)算數(shù)組的差集

  • 語法
  1. array_diff(array $array, array ...$arrays) : array
  • 參數(shù)

array: 要被比對的數(shù)組

arrays: 更多比較的數(shù)組

  • 返回值

該函數(shù)的返回值是一個數(shù)組,該數(shù)組中包含了在array中但是不在其他數(shù)組中的值。值得注意的是,返回的值它對應(yīng)的鍵名不會改變,即:保留原數(shù)組的鍵

  • 案例
  1. $array1 = ["name" => '張三', "李四", "王五", "趙六"];
  2. $array2 = ["nick" => '張五', "趙六", "李四", "柱子"];
  3. $result = array_diff($array1, $array2);
  4. echo print_r($result, true); // Array ( [name] => 張三 [1] => 王五 )

二、array_diff_assoc帶索引檢查計(jì)算數(shù)組的差集

  • 語法
  1. array_diff_assoc(array $array, array ...$arrays) : array
  • 參數(shù)
    array: 要被比對的數(shù)組
    arrays: 更多比較的數(shù)組

  • 返回值
    返回一個數(shù)組,其中包含array中所有其他數(shù)組中不存在的所有值。注意和array_diff()不同的是鍵名也用于比較。

  • 案例

  1. $array1 = ["name" => '張三', "李四", "王五", "趙六"];
  2. $array2 = ["nick" => '張三', "李四", "狗子", "柱子"];
  3. $result1 = array_diff($array1, $array2);
  4. echo print_r($result1, true)."<br>"; // Array ( [1] => 王五 [2] => 趙六 )
  5. $result2 = array_diff_assoc($array1, $array2);
  6. echo print_r($result2, true); // Array ( [name] => 張三 [1] => 王五 [2] => 趙六 )

通過上述array_diff()array_diff_assoc()兩個函數(shù)的結(jié)果可以看出,array1的鍵值對"name" => "張三"array2的鍵值對"nick" => "張三"它們的值都是相等的,但是鍵名不同,所以在array_diff_assoc()函數(shù)中還是會輸出該值。相當(dāng)于使用了嚴(yán)格檢查模式。

三、array_intersect_assoc 帶索引檢查計(jì)算數(shù)組的交集

  • 語法

array_intersect_assoc(array $array, array …$arrays) : array

  • 參數(shù)

array: 要檢查的數(shù)組,該數(shù)組作為主值

arrays: 要被對比的數(shù)組列表

  • 返回值

返回一個數(shù)組,該數(shù)組包含了在array中也同時出現(xiàn)在所有其它參數(shù)數(shù)組中的值。注意和array_intersect()不用的是鍵名也用于比較。

  • 案例
  1. $array1 = ["name" => '張三', "李四", "王五", "趙六"];
  2. $array2 = ["nick" => '張三', "李四", "趙六", "柱子"];
  3. $result = array_intersect_assoc($array1, $array2);
  4. echo print_r($result, true); // Array ( [0] => 李四 )

以上代碼只會輸出[0] => 李四,因?yàn)橹挥?code>array2中李四的鍵值對array1中的完全相等。

五、array_merge()合并一個或多個數(shù)組

  • 語法

array_merge(array …$arrays) : array

  • 參數(shù)

arrays: 要合并的一個或多個數(shù)組

  • 返回值

返回一個合并后的結(jié)果數(shù)組。

  • 注意

如果輸入的數(shù)組中有相同的字符串鍵名,那么后者的值將覆蓋前者,但是如果數(shù)組包含數(shù)字鍵名,后面的值將不會覆蓋原來的值,而是會附加在數(shù)組后面。

  • 案例
  1. $array1 = ['color' => 'blue', 3, 5];
  2. $array2 = ['a', 5, 'color' => 'red', 10];
  3. print_r(array_merge($array1, $array2));
  4. // 結(jié)果:
  5. // // Array ( [color] => red [0] => 3 [1] => 5 [2] => a [3] => 5 [4] => 10 )

六、array_combine()合并兩個數(shù)組,其中一個數(shù)組的值作為新數(shù)組的鍵,另外一個數(shù)組的鍵作為新數(shù)組的值

  • 語法

array_combine(array $keys, array $values) : array

  • 參數(shù)

keys: 要當(dāng)做新數(shù)組的鍵。

values: 要當(dāng)做新數(shù)組的值。

  • 返回值

返回一個新數(shù)組,如果兩個數(shù)組的數(shù)量不一樣將返回false。

  • 案例

以下代碼會報錯:array_combine(): Both parameters should have an equal number of elements

  1. $array1 = ['color' => 'blue', 3, 5];
  2. $array2 = ['a', 5, 'color' => 'red', 10];
  3. print_r(array_combine($array1, $array2));
  • 結(jié)果圖:

array_combine

正確的代碼應(yīng)該是下面的:

  1. $array1 = ['color' => 'blue', 3, 5];
  2. $array2 = ['a', 5, 'color' => 'red'];
  3. print_r(array_combine($array1, $array2)); // Array ( [blue] => a [3] => 5 [5] => red )

這里有一點(diǎn)值得注意的是:兩個數(shù)組的單元數(shù)量必須是一致的,否則,就會報錯。

七、array_flip()交換數(shù)組的鍵和值

  • 語法

array_combine(array $array) : array

  • 參數(shù)

array: 需要交換鍵值對的數(shù)組。

  • 返回值

成功后返回一個交換了鍵值對的新數(shù)組,如果失敗則返回null。

  • 案例
  1. $array = ['name' => '殘破的蛋蛋', 'age' => 30];
  2. $newArray = print_r(array_flip($array), true);
  3. print_r($newArray)."<br>"; // Array ( [殘破的蛋蛋] => name [30] => age )
  4. // 該方法不會改變原有數(shù)組。
  5. print_r($array); // Array ( [name] => 殘破的蛋蛋 [age] => 30 )

注意:該方法不會改變原有數(shù)組。

八、array_multisort()對多個數(shù)組或多維數(shù)組進(jìn)行排序

  • 語法

array_multisort(array &$array1, mixed $array1_sort_order = SORT_ASC, …$array) : array

  • 參數(shù)

array1: 要排序的數(shù)組。

array1_sort_order:排序方式。SORT_ASC:按照升序排序,SORT_DESC按照降順序排序。

…$array:可選項(xiàng),提供更多數(shù)組參與排序,提供的數(shù)組需要和array1要有相同數(shù)量的元素。

  • 返回值

成功返回值ture,失敗返回false。

  • 案例

以下是一組從Redis中查詢出來的購物車數(shù)據(jù)列表:

  1. $cart_lists = Array
  2. (
  3. 0 => Array
  4. (
  5. 'title' => '黑色連褲襪女顯瘦中厚絲襪',
  6. 'image' => 'http://localhost:8082/upload/image/20201116\a6641df33b4e2507c562e7ed7b3b39ee.jpg',
  7. 'num' => '1',
  8. 'goods_id' => 88,
  9. 'create_time' => '1612083130',
  10. 'id' => 140,
  11. 'price' => 13.90,
  12. 'total_price' => 13.9,
  13. 'sku' => '顏色 款式:黑色1條裝 款式:踩腳款【高彈力70-135斤】'
  14. ),
  15. 1 => Array
  16. (
  17. 'title' => '黑色連褲襪女顯瘦中厚絲襪',
  18. 'image' => 'http://localhost:8082/upload/image/20201116\a6641df33b4e2507c562e7ed7b3b39ee.jpg',
  19. 'num' => 1,
  20. 'goods_id' => 88,
  21. 'create_time' => 1612083133,
  22. 'id' => 141,
  23. 'price' => 9.90,
  24. 'total_price' => 9.9,
  25. 'sku' => '顏色 款式:黑色1條裝 款式:九分款【高彈力70-135斤】'
  26. ),
  27. 2 => Array
  28. (
  29. 'title' => '黑色連褲襪女顯瘦中厚絲襪',
  30. 'image' => 'http://localhost:8082/upload/image/20201116\a6641df33b4e2507c562e7ed7b3b39ee.jpg',
  31. 'num' => 3,
  32. 'goods_id' => 88,
  33. 'create_time' => 1612082911,
  34. 'id' => 130,
  35. 'price' => 16.90,
  36. 'total_price' => 50.7,
  37. 'sku' => '顏色 款式:黑色5條裝16.9 款式:連褲款【高彈力70-135斤】',
  38. ),
  39. 4 => Array
  40. (
  41. 'title' => '黑色連褲襪女顯瘦中厚絲襪',
  42. 'image' => 'http://localhost:8082/upload/image/20201116\a6641df33b4e2507c562e7ed7b3b39ee.jpg',
  43. 'num' => 1,
  44. 'goods_id' => 88,
  45. 'create_time' => 1612082923,
  46. 'id' => 133,
  47. 'price' => 16.90,
  48. 'total_price' => 16.9,
  49. 'sku' => '顏色 款式:黑色3條裝12.9 款式:連褲款【高彈力70-135斤】'
  50. )
  51. );

現(xiàn)在我們需要按照用戶添加的時間倒序排列購物車?yán)锏臄?shù)據(jù),也就是把最新添加的商品顯示在最前面。

  1. $array_column = array_column($cart_lists, "create_time");
  2. print_r($array_column); // Array ( [0] => 1612083130 [1] => 1612083133 [2] => 1612082911 [3] => 1612082923 )
  3. array_multisort($array_column, SORT_DESC, $cart_lists);
  4. print_r($cart_lists);
  • 效果圖:

array_multisort

注意:array_multisort()函數(shù)的返回值是ture和false,它是直接在原數(shù)組上進(jìn)行的修改,所以如果要是輸出排序后的數(shù)組,直接打印原數(shù)組即可。

九、array_product()計(jì)算數(shù)組中所有值的乘積

  • 語法

array_product(array $array) : number

  • 參數(shù)

array: 參與計(jì)算乘積的數(shù)組。

  • 返回值

以整數(shù)或浮點(diǎn)數(shù)返回一個數(shù)組中所有值的乘積。

  • 案例
  1. $a = array(2, 4, 6, 9);
  2. echo sprintf('array數(shù)組的所有值的乘積是:%d', array_product($a)); // array數(shù)組的所有值的乘積是:432

以上結(jié)果會輸出:array數(shù)組的所有值的乘積是:432

十、array_sum()計(jì)算數(shù)組中所有值的和

  • 語法

array_sum(array $array) : number

  • 參數(shù)

array: 參與計(jì)算和的數(shù)組。

  • 返回值

以整數(shù)或浮點(diǎn)數(shù)返回一個數(shù)組中所有值的和。

  • 案例
  1. $a = array(2, 4, 6, 9);
  2. echo sprintf('array數(shù)組的所有值的和是:%d', array_sum($a)); // array數(shù)組的所有值的和是:21

十一、array_replace()使用傳遞的數(shù)組替換第一個數(shù)組的元素

  • 語法

array_replace(array $array, array $replacement) : array

array_replace()函數(shù)使用后面數(shù)組元素相同的key值替換前面的數(shù)組元素。如果一個鍵在同時存在于兩個數(shù)組中,第一個數(shù)組中的值將被第二個數(shù)組中的值替換掉。
如果一個鍵存在于第二個數(shù)組中,但不存在于第一個數(shù)組中,則會在第一個數(shù)組中創(chuàng)建這個元素。如果一個鍵僅存在于第一個數(shù)組中,它將保持不變。如果同時傳遞了多個數(shù)組,它們
將被依次處理,后面的數(shù)組覆蓋前面的值。

  • 參數(shù)

array: 被替換的數(shù)組。
replacement: 要替換前面數(shù)組的數(shù)組。

  • 返回值

返回的是一個被替換之后的數(shù)組,如果發(fā)生錯誤將返回null。

  • 案例
  1. $array = ['blue', 'yellow', 'red', 'lightgreen'];
  2. $replacement1 = [0 => 'blue', 'black', 2 => 'yellow', 4 => 'voilet'];
  3. $replacement2 = [2 => 'green'];
  4. print_r(array_replace($array, $replacement1, $replacement2));

以上結(jié)果會輸出:Array ( [0] => blue [1] => black [2] => green [3] => lightgreen [4] => voilet )

十二、array_unique()移除數(shù)組中重復(fù)的值

  • 語法

array_uniqure(array $array, int $sort_flags = SORT_STRING) : array

array_uniqure()函數(shù)先將值作為字符串排序,然后每個值值保留第一個遇到的鍵名,接著會忽略后面所有的鍵名

注意:該方法會保留鍵名,當(dāng)且僅當(dāng)($string) $ele1 === (string) $ele2時,才認(rèn)為兩個元素相同。

  • 參數(shù)

array: 需要去重的數(shù)組。

  • 返回值

返回的是一個被過濾之后的新數(shù)組。

  • 案例1
  1. $array = ['a' => 'blue', 'b' => 'yellow', 'blue', 'red', 'green', 'lightgreen'];
  2. $result = array_unique($array, SORT_LOCALE_STRING);
  3. print_r($result);

以上代碼會輸出:Array ( [a] => blue [b] => yellow [1] => red [2] => green [3] => lightgreen )。

  • 案例2
  1. $array = [4, "3", 1, 4, "2", "4", 2, 3];
  2. $result = array_unique($array, SORT_NUMERIC);
  3. print_r($result);

以上代碼會輸出:Array ( [0] => 4 [1] => 3 [2] => 1 [4] => 2 )

批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語:
本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
0條評論
作者最新博文
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)