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

搜索
博主信息
博文 33
粉絲 0
評(píng)論 0
訪(fǎng)問(wèn)量 34412
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
服務(wù)端 - PHP - 數(shù)組函數(shù)
原創(chuàng)
934人瀏覽過(guò)

服務(wù)端 - PHP - 數(shù)組函數(shù)

一、10個(gè)函數(shù)例子

1. array_column():獲取多維數(shù)組中一列組成的新數(shù)組

  • 語(yǔ)法:array_column(array,column_key,index_key)

  • array:必需。指定要使用的多維數(shù)組(記錄集)

  • column_key:必需。需要返回值的列

  • index_key:可選。作為返回?cái)?shù)組的索引/鍵的列

  • 返回值:返回一個(gè)數(shù)組,數(shù)組的值為輸入數(shù)組中某個(gè)單一列的值

  1. $arr = [
  2. ['name'=>'小明', 'sex'=>'男', 'age'=>18 ],
  3. ['name'=>'小紅', 'sex'=>'女', 'age'=>16 ],
  4. ['name'=>'小王', 'sex'=>'男', 'age'=>17 ]
  5. ];
  6. $newArr = array_column($arr, 'sex', 'name');
  7. echo '<pre>';
  8. print_r($newArr);
  9. echo '</pre>';

2. array_replace_recursive():使用傳遞的數(shù)組遞歸替換第一個(gè)數(shù)組的元素

  • 語(yǔ)法:array_replace_recursive(array1,array2,array3…)

  • array1:必需。指定一個(gè)數(shù)組

  • array2:可選。指定一個(gè)要替換 array1 的值的數(shù)組

  • array3:可選。指定多個(gè)要替換 array1 和 array2, … 的值的數(shù)組。后面數(shù)組的值將覆蓋之前數(shù)組的值

  • 返回值:返回被替換的數(shù)組,如果發(fā)生錯(cuò)誤則返回 NULL

  1. $arr1 = [
  2. ['name'=>'小明', 'sex'=>'男', 'age'=>18 ],
  3. ['name'=>'小紅', 'sex'=>'女', 'age'=>16 ],
  4. ['name'=>'小王', 'sex'=>'男', 'age'=>17 ]
  5. ];
  6. $arr2 = [
  7. ['name'=>'小茜', 'sex'=>'女', 'age'=>17 ],
  8. ['name'=>'小華', 'sex'=>'男', 'age'=>19 ],
  9. ['name'=>'小趙', 'sex'=>'男', 'age'=>18 ]
  10. ];
  11. $newArr1 = array_replace_recursive($arr1, $arr2);
  12. echo '<pre>';
  13. print_r($newArr1);
  14. echo '</pre>';

3. array_intersect():計(jì)算數(shù)組的交集

  • 語(yǔ)法:array_intersect(array1,array2,array3…)

  • array1:必需。與其他數(shù)組進(jìn)行比較的第一個(gè)數(shù)組

  • array2:必需。與第一個(gè)數(shù)組進(jìn)行比較的數(shù)組

  • array3:可選。與第一個(gè)數(shù)組進(jìn)行比較的其他數(shù)組

  • 返回值:返回一個(gè)交集數(shù)組,該數(shù)組包括了所有在被比較的數(shù)組(array1)中,同時(shí)也在任何其他參數(shù)數(shù)組(array2 或 array3 等等)中的鍵值

  1. $arr3 = ['name'=>'小明', 'sex'=>'男', 'age'=>18 ];
  2. $arr4 = ['name'=>'小紅', 'sex'=>'女', 'age'=>18 ];
  3. $newArr2 = array_intersect($arr3, $arr4);
  4. echo '<pre>';
  5. print_r($newArr2);
  6. echo '</pre>';

4. array_diff():返回?cái)?shù)組的差集

  • 語(yǔ)法:array_diff(array1,array2,array3…)

  • array1:必需。與其他數(shù)組進(jìn)行比較的第一個(gè)數(shù)組

  • array2:必需。與第一個(gè)數(shù)組進(jìn)行比較的數(shù)組

  • array3:可選。與第一個(gè)數(shù)組進(jìn)行比較的其他數(shù)組

  • 返回值:返回一個(gè)差集數(shù)組,該數(shù)組包括了所有在被比較的數(shù)組(array1)中,但是不在任何其他參數(shù)數(shù)組(array2 或 array3 等等)中的值

  1. $arr5 = ['name'=>'小明', 'sex'=>'男', 'age'=>18, 'email'=>'xiaoming@qq.com' ];
  2. $arr6 = ['name'=>'小紅', 'sex'=>'女', 'age'=>18 ];
  3. $arr7 = ['name'=>'小趙', 'sex'=>'男', 'age'=>18 ];
  4. $newArr3 = array_diff($arr5, $arr6, $arr7);
  5. echo '<pre>';
  6. print_r($newArr3);
  7. echo '</pre>';

5. array_merge():把一個(gè)或多個(gè)數(shù)組合并為一個(gè)數(shù)組

  • 語(yǔ)法:array_merge(array1,array2,array3…)

  • array1:必需。規(guī)定數(shù)組

  • array2:可選。規(guī)定數(shù)組

  • array3:可選。規(guī)定數(shù)組

  • 返回值:返回合并的數(shù)組

  1. $arr8 = ['name'=>'小明', 'sex'=>'男', 'age'=>18 ];
  2. $arr9 = ['phone'=>'13785459358', 'email'=>'xiaoming@qq.com', 'address'=>'北京'];
  3. $newArr4 = array_merge($arr8, $arr9);
  4. echo '<pre>';
  5. print_r($newArr4);
  6. echo '</pre>';

6. array_chunk():把一個(gè)數(shù)組分割成多個(gè)子數(shù)組

  • 語(yǔ)法:array_chunk(array,size,preserve_keys)

  • array1:必需。規(guī)定要使用的數(shù)組

  • size:必需。一個(gè)整數(shù),規(guī)定每個(gè)新數(shù)組塊包含多少個(gè)元素

  • preserve_keys:可選。布爾值,rue - 保留原始數(shù)組中的鍵名,false - 默認(rèn)。每個(gè)新數(shù)組塊使用從零開(kāi)始的索引

  • 返回值:返回一個(gè)多維的數(shù)值數(shù)組,從 0 開(kāi)始,每個(gè)維度都包含 size 元素

  1. $arr10 = ['name'=>'小明', 'sex'=>'男', 'age'=>18, 'phone'=>'13785459358', 'email'=>'xiaoming@qq.com', 'address'=>'北京' ];
  2. $newArr5 = array_chunk($arr10, 3, true);
  3. echo '<pre>';
  4. print_r($newArr5);
  5. echo '</pre>';

7. array_fill():用給定的值填充數(shù)組

  • 語(yǔ)法:array_fill(index,number,value)

  • index:必需。規(guī)定返回?cái)?shù)組的起始索引

  • number:必需。規(guī)定填充的元素的數(shù)量,其值必須大于 0

  • value:可選。必需。規(guī)定用于填充數(shù)組的鍵值

  • 返回值:返回填充的數(shù)組

  1. $arr11 = array_fill(2, 4, '你好');
  2. echo '<pre>';
  3. print_r($arr11);
  4. echo '</pre>';

8. array_fill_keys():使用指定的鍵和值填充數(shù)組

  • 語(yǔ)法:array_fill_keys(keys,value)

  • keys:必需。數(shù)組,其值將被用于填充數(shù)組的鍵名

  • value:必需。規(guī)定用于填充數(shù)組的鍵值

  • 返回值:返回填充的數(shù)組

  1. $keys = ['n1', 'n2', 'n3'];
  2. $arr12 = array_fill_keys($keys, 18);
  3. echo '<pre>';
  4. print_r($arr12);
  5. echo '</pre>';

9. array_pad():將指定數(shù)量的帶有指定值的元素插入到數(shù)組中

  • 語(yǔ)法:array_pad(array,size,value)

  • array:必需。數(shù)組,其值將被用于填充數(shù)組的鍵名

  • size:必需。規(guī)定用于填充數(shù)組的鍵值

  • value:必需。規(guī)定從函數(shù)返回的數(shù)組中新元素的值

  • 返回值:返回帶有新元素的數(shù)組

  1. $arr13 = ['小明', '男', 18];
  2. $newArr6 = array_pad($arr13, 5, 13785459358);
  3. echo '<pre>';
  4. print_r($newArr6);
  5. echo '</pre>';

10. extract():將關(guān)聯(lián)數(shù)組拆分成變量名值對(duì)

  • 語(yǔ)法:extract(array,extract_rules,prefix)

  • array:必需。規(guī)定要使用的數(shù)組

  • extract_rules:可選。extract() 函數(shù)將檢查每個(gè)鍵名是否為合法的變量名,同時(shí)也檢查和符號(hào)表中已存在的變量名是否沖突。

  • prefix:可選。規(guī)定前綴,前綴和數(shù)組鍵名之間會(huì)自動(dòng)加上一個(gè)下劃線(xiàn)

  • 返回值:返回成功設(shè)置的變量數(shù)目

  1. $arr14 = ['name'=>'小明', 'sex'=>'男', 'age'=>18, 'phone'=>'13785459358'];
  2. extract($arr14);
  3. echo "<br>\$name = $name; \$sex = $sex; \$age = $age; \$phone = $phone";

二、4個(gè)數(shù)組回調(diào)函數(shù)

1. array_filter():用回調(diào)函數(shù)過(guò)濾數(shù)組中的單元

  • 語(yǔ)法:array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )

  • array:必需。規(guī)定要過(guò)濾的數(shù)組

  • callback:可選。規(guī)定要用的回調(diào)函數(shù)

  • flag:可選。決定 callback 接收的參數(shù)形式,ARRAY_FILTER_USE_KEY - callback 接受鍵名作為的唯一參數(shù),ARRAY_FILTER_USE_BOTH - callback 同時(shí)接受鍵名和鍵值

  • 返回值:返回過(guò)濾的數(shù)組

  1. $arr = [10, 11, 12, 13, 14, 15];
  2. $newArr = array_filter($arr, function($n){
  3. return $n > 11 && $n < 14;
  4. });
  5. echo '<pre>';
  6. print_r($newArr);
  7. echo '</pre>';

2. array_map():同時(shí)為多個(gè)數(shù)組的每個(gè)元素應(yīng)用回調(diào)函數(shù)

  • 語(yǔ)法:array_map(myfunction,array1,array2,array3…)

  • myfunction:必需。用戶(hù)自定義函數(shù)的名稱(chēng),或者是 null

  • array1:必需。規(guī)定數(shù)組

  • array2:必需。規(guī)定數(shù)組

  • array3:必需。規(guī)定數(shù)組

  • 返回值:返回包含用戶(hù)自定義函數(shù)作用后的 array1 的值的數(shù)組

  1. $arr1 = [10, 11, 12, 13, 14, 15];
  2. $arr2 = [15, 16, 17, 18, 19, 21];
  3. echo '<pre>';
  4. print_r(array_map(function($n1, $n2){
  5. if ($n2 - $n1 === 5) {
  6. return '等于5';
  7. } else {
  8. return "不等于5";
  9. };
  10. }, $arr1, $arr2));
  11. echo '</pre>';

3. array_walk():使用用戶(hù)自定義函數(shù)對(duì)數(shù)組中的每個(gè)元素做回調(diào)處理

  • 語(yǔ)法:array_walk(array,myfunction,parameter…)

  • array:必需。規(guī)定數(shù)組

  • myfunction:必需。用戶(hù)自定義函數(shù)的名稱(chēng)

  • parameter…:可選。規(guī)定用戶(hù)自定義函數(shù)的參數(shù),您可以為函數(shù)設(shè)置一個(gè)或多個(gè)參數(shù)

  • 返回值:如果成功則返回 TRUE,否則返回 FALSE

  1. $arr3 = ['name'=>'小明', 'sex'=>'男', 'age'=>18];
  2. function callback(&$value, $key) {
  3. switch ($key) :
  4. case $key === 'name':
  5. return $value = '小紅';
  6. case $key === 'sex':
  7. return $value = '女';
  8. case $key === 'age':
  9. return $value = 17;
  10. default:
  11. echo 'error';
  12. endswitch;
  13. }
  14. if (array_walk($arr3, 'callback')){
  15. echo '<pre>';
  16. print_r($arr3);
  17. echo '</pre>';
  18. } else {
  19. echo 'failed';
  20. };
  21. echo '4. array_reduce():迭代處理數(shù)組元素';

4. array_reduce():迭代處理數(shù)組元素

  • 語(yǔ)法:array_reduce(array,myfunction,initial)

  • array:必需。規(guī)定數(shù)組

  • myfunction:必需。規(guī)定函數(shù)的名稱(chēng)

  • initial:可選。規(guī)定發(fā)送到函數(shù)處理的第一個(gè)值

  • 返回值:返回結(jié)果值

  1. echo '<br>';
  2. $arr4 = ['小明', '小紅', '小王'];
  3. function callback1($v1, $v2) {
  4. return $v1.','.$v2;
  5. }
  6. echo array_reduce($arr4, 'callback1', '姓名:');

三、array_slice()與array_splice()

1. array_slice():從數(shù)組中取出一部分

  • 語(yǔ)法:array_slice(array,start,length,preserve)

  • array:必需。規(guī)定數(shù)組

  • start,:必需。數(shù)值。規(guī)定取出元素的開(kāi)始位置

  • length:可選。數(shù)值。規(guī)定被返回?cái)?shù)組的長(zhǎng)度

  • preserve:可選。規(guī)定函數(shù)是保留鍵名還是重置鍵名

  • 返回值:返回?cái)?shù)組中的選定部分

  1. $arr = ['name'=>'小明', 'sex'=>'男', 'age'=>18, 'phone'=>'13785459358', 'email'=>'xiaoming@qq.com', 'address'=>'北京' ];
  2. echo '<pre>';
  3. print_r(array_slice($arr, 3, 2, true));
  4. echo '</pre>';

2. array_splice():去掉數(shù)組中一部分并用其他值代替

  • 語(yǔ)法:array_splice(array,start,length,array)

  • array:必需。規(guī)定數(shù)組

  • start,:必需。數(shù)值。規(guī)定刪除元素的開(kāi)始位置

  • length:可選。數(shù)值。規(guī)定被移除的元素個(gè)數(shù)

  • array:可選。規(guī)定帶有要插入原始數(shù)組中元素的數(shù)組

  • 返回值:返回包含被提取元素的數(shù)組

  1. $arr1 = ['name'=>'小明', 'sex'=>'男', 'age'=>18, 'phone'=>'13785459358', 'email'=>'xiaoming@qq.com', 'address'=>'北京' ];
  2. array_splice($arr1, 3, 2, ['school'=>'北京大學(xué)', 'class'=>'軟件工程一班']);
  3. echo '<pre>';
  4. print_r($arr1);
  5. echo '</pre>';

四、課程總結(jié)

  • 今天學(xué)習(xí)了 PHP 的數(shù)組函數(shù),通過(guò)上課認(rèn)真聽(tīng)講和認(rèn)真完成老師布置的作業(yè),使得我對(duì) PHP 的理解和運(yùn)用更加深入和熟悉。最主要的知識(shí)點(diǎn)是明白和掌握了array_splice()、array_map()等函數(shù)的用法。
批改老師:天蓬老師天蓬老師

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

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

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

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