搜尋
首頁後端開發php教程php數組(Array函數)的處理

php數組(Array函數)的處理

Apr 14, 2018 pm 05:22 PM
php處理陣列

相關推薦:《PHP ARRAY 陣列函數(專題)

##PHP Array 是什麼?

陣列就是一組資料的集合,把一系列資料組織起來,形成一個可操作的整體。 PHP 中的陣列較為複雜,但比其他許多高階語言中的陣列更為靈活。

數組 array 是一組有序的變量,其中每個值被稱為一個元素。每個元素由一個特殊的標識符來區分,這個標識符稱為鍵(也稱為下標)。

陣列中的每個實體都包含兩項,分別是鍵(key)和值(value)。可以透過鍵值來取得對應的陣列元素,這些鍵可以是數值鍵,也可以是關聯鍵。如果說變數是儲存單一值的容器,那麼陣列就是儲存多個值的容器。

PHP 陣列比其他高階語言中的陣列更靈活,不但支援以數字為鍵名的索引數組,而且支援以字串或字串、數字混合為鍵名的關聯數組。而在其他高階語言中,如 Java 或 C 等語言的數組,則只支援數字索引數組。

PHP 陣列的結構如下圖所示:

php數組(Array函數)的處理

#在PHP 中,有三種陣列類型:

  • 索引數組:帶有數字索引的數組

  • 關聯數組:帶有指定鍵的數組

  • 多維數組:包含一個或多個陣列的陣列

推薦影片教學:

#1、《

PHP函數之array陣列函數視訊講解

2、《

PHP基本文法(玉女心經版)

3、《

PHP字串處理(玉女心經版)

推薦學習手冊:《

php完全自學手冊

#PHP Array 使用

PHP數組的定義

[1,  5,  1.1,  'abc'  true,  false] //可以存储任何数据,此时为'默认下标',

[2=>1,  5=>5,  3=>1.1,  7=>'abc'  0=>true]//下标可以任意设定(无需顺序,无需连续)

[2=>1,  5,  1=>1.1,  'abc'  0=>true]//可以加下标,也可以不加(默认下标),下标分别是:2,3,1,4,0

//默认下标规则:前面已经用过的最大数字下标+1

[2=>1,  'dd'=>5,  1=>1.1,  'abc'  0=>true]//混合下标,同样遵循默认下标规则

[-2=>1,  'dd'=>5,  1.1,  'abc'  true]; //负数下标不算在整数下标中,而只当作字符下标

//则最好3项的下标是:0, 1, 2

[2.7=>1,  'dd'=>5,  1=>1.1,  'abc'  0=>true]//浮点数下标为自动转换为整数,且直接抹掉小数

['2.7' =>1,  'dd'=>5,  '11'=>1.1,  'abc'  true]//纯数字字符串下标,当作数字看待,

//则此时下标为:2, 'dd', 11, 12, 13

[2=>1,  'dd'=>5,  true=>1.1,  'abc'  false=>true]//布尔值当下标,则true为1,false为0;

[2=>1,  'dd'=>5,  2=>1.1,  'abc'  true]//如果下标跟前面的重复,则单纯覆盖前面同名下标的值

關聯數組

$array = [
    'name' => 'zhaosi',
    'age' => 20,
    'sex' => '女'
];

多維數組


$array = [
    [
        'name' => 'xiaoming',
        'age' => 17,
        'sex' => '男'
    ],
    [
        'name' => 'wanghua',
        'age' => 16,
        'sex' => '女'
    ],
    [
        'name' => 'zhaosi',
        'age' => 20,
        'sex' => '女'
    ],
    [
        'name' => 'zhangsan',
        'age' => 22,
        'sex' => '男'
    ],
    [
        'name' => 'wangli',
        'age' => 12,
        'sex' => '女'
    ],
    [
        'name' => 'zhuhua',
        'age' => 14,
        'sex' => '男'
    ]
];

數組歷遍

$array = [
    [
        'name' => 'xiaoming',
        'age' => 17,
        'sex' => '男'
    ],
    [
        'name' => 'wanghua',
        'age' => 16,
        'sex' => '女'
    ],
    [
        'name' => 'zhaosi',
        'age' => 20,
        'sex' => '女'
    ],
    [
        'name' => 'zhangsan',
        'age' => 22,
        'sex' => '男'
    ],
    [
        'name' => 'wangli',
        'age' => 12,
        'sex' => '女'
    ],
    [
        'name' => 'zhuhua',
        'age' => 14,
        'sex' => '男'
    ]
];



foreach ($array as $key => $value) {
    echo $value['name'];
    echo $value['age'];
    echo $value['sex'];
}

輸出結果


xiaoming
17
男
wanghua
16
女
zhaosi
20
女
zhangsan
22
男
wangli
12
女
zhuhua
14
男

常用PHP陣列函數

#1、count() 函數的作用是計算陣列中的元素數量或物件中屬性個數

int count(mixed var[,int mode])

第一個參數是必須的,傳人個計算的陣列或物件。第二個參數是可選,規定函數的模式是否遞歸地計算多維數組中數組的元素個數,可能的值是0 或1,0為預設值,不檢測多維數組,為1則檢測多維數組

範例:

$a = array(
    "a",
    "b",
    "c",
    "d"
);
echo count($a); //输出个数4
$b = array(
    "a" => array(
        1,
        2,
        3
    ) ,
    "b" => array(
        4,
        5,
        6
    )
);
echo count($b, 1); //输出 8
echo count($b); //输出 2y([b]=>2 [d]=>4)

2、array_count_values() 函數用於統計數組中所有值出現的次數,該函數只有一個參數

array array_count_values(array input)

參數規定輸入數組,傳回一個數組,其元素的鍵名是原始數組的值,鍵值是該值在原始數組中出現的次數

範例:

$array=array(1,"a",1,"b","a");
$newarray=array_count_values($array);
print_r($newarray);//输出array([1]=>2 [a]=>2 [b]=>1)

##3 、array_unique()函數用於刪除數組中重複的值,並傳回沒有重複值的新數組

array array_unique(array array)

參數需要接受一個數組,當數組中幾個元素的值相等時,只保留第一個元素,其他元素被刪除,並且傳回的新數組中鍵名不變,array_unique()先將值作為字串排序,然後對每個值只保留第一個遇到的鍵名,接著忽略所有後面的鍵名

範例:

$a=array("a"=>1,"b"=>2,"c"=>1);
print_r(array_unique($a));//输出 array([a]=>1 [b]=>2)

4、array_filter() 函數用回呼函數過濾數組中元素,傳回按使用者自訂函數過濾後的陣列

array array_filter(array input [,callback callback])

參數:第一參數是必選項,要求輸入一個被過濾的數組,第二參數可選,將使用者自訂的函數名稱以字串形式傳入,如果自訂過濾函數傳回true,則被操作的數組的目前值就會包含在傳回的結果數組中,並將結果組成一個新數組,如果原始數組是一個關聯數組,則鍵名保持不變。

範例:

function myFun($var) {
    if ($var % 2 == 0) {
        return true;
    }
}
$array = array(
    "a" => 1,
    "b" => 2,
    "c" => 3,
    "d" => 4
);
print_r($array, "myFun"); //输出 array([b]=>2 [d]=>4)

5、array_walk()函數對陣列中的每個元素套用回呼函數處理,如果成功傳回true,否則回傳false

#
bool array_walk( array &array,callback funcname [,mixed userdata])

第一個參數是必須,要求輸入一個被指定的回呼函數處理的數組,第二個參數傳人用戶定義的回調函數,用於操作傳人第一參數的數組

範例:

function myFunc1($value, $key) {
    echo "key=$key value=$value";
}
$a = ["a" => "lin1", "b" => "lin2", "c" => "lin3"];
array_walk($a, "myFunc1");
function myFunc2($value, $key, $str) {
    echo "$key $value";
}
array_walk($a, "myFunc2");
function myFunc3($value, $key) {
    $value = "lin.su";
}
array_walk($a, "myFunc3");
print_r($a); //$a 是一个引用数组

6、array_map()函數可以處理多個數組,將回呼函數作用到給定數組的元素上,並傳回使用者自訂函數作用後數組。

array array_map(callback callback,array arr1[,arry ....])

範例:

function myFunc($v1, $v2) {
    if ($v1 == $v2) {
        return "same";
    }
    return "different";
}
$a = [1, 2, 3];
$b = [1, 4, 3];
print_r(array_map("myFunc", $a, $b)); //输出 array([0]=>same [1]=>difference [2]=>same)
print_r(array_map(null, $a, $b));

輸出:

array(
[0]=>array([0]=>1 [1]=>2 [2]=>3)
[1]=>array([0]=>1 [1]=>2 [2]=>3)
)

PHP 陣列函數

########
函數 描述
#array() #建立陣列。
array_change_key_case() 把陣列中所有鍵改為小寫或大寫。
array_chunk() 把一個陣列分割成新的陣列區塊。
array_column() 傳回輸入陣列中某個單一列的值。
array_combine() 透過合併兩個陣列來建立一個新陣列。
array_count_values() 用於統計數組中所有值出現的次數。
array_diff() 比較數組,傳回差集(只比較鍵值)。
array_diff_assoc() 比較數組,傳回差集(比較鍵名和鍵值)。
array_diff_key() 比較數組,傳回差集(只比較鍵名)。
array_diff_uassoc() 比較數組,傳回差集(比較鍵名和鍵值,使用使用者自訂的鍵名比較函數)。
array_diff_ukey() 比較數組,傳回差集(只比較鍵名,使用使用者自訂的鍵名比較函數)。
array_fill() 用給定的鍵值填入陣列。
array_fill_keys() 用指定鍵名的給定鍵值填入陣列。
array_filter() 用回呼函數過濾陣列中的元素。
array_flip() 交換陣列中的鍵和值。
array_intersect() 比較數組,傳回交集(只比較鍵值)。
array_intersect_assoc() 比較數組,傳回交集(比較鍵名和鍵值)。
array_intersect_key() 比較數組,傳回交集(只比較鍵名)。
array_intersect_uassoc() 比較數組,傳回交集(比較鍵名和鍵值,使用使用者自訂的鍵名比較函數)。
array_intersect_ukey() 比較數組,傳回交集(只比較鍵名,使用使用者自訂的鍵名比較函數)。
array_key_exists() 檢查指定的鍵名是否存在於陣列中。
array_keys() 傳回陣列中所有的鍵名。
array_map() 把陣列中的每個值送到使用者自訂函數,傳回新的值。
array_merge() 把一個或多個數字組合成一個陣列。
array_merge_recursive() 遞歸地合併一個或多個陣列。
array_multisort() 對多個陣列或多維數組進行排序。
array_pad() 用值將陣列填入指定長度。
array_pop() 刪除陣列的最後一個元素(出堆疊)。
array_product() 計算陣列中所有值的乘積。
array_push() 將一個或多個元素插入陣列的末端(入堆疊)。
array_rand() 傳回陣列中一個或多個隨機的鍵。
array_reduce() 透過使用使用者自訂函數,以字串傳回陣列。
array_replace() 使用後面陣列的值來取代第一個陣列的值。
array_replace_recursive() 遞歸地使用後面陣列的值來取代第一個陣列的值。
array_reverse() 以相反的順序傳回陣列。
array_search() 在陣列中搜尋給定的值並傳回鍵名。
array_shift() 刪除陣列中首個元素,並傳回被刪除元素的值。
array_slice() 傳回數組中被選定的部分。
array_splice() 刪除並取代陣列中指定的元素。
array_sum() 傳回陣列中值的和。
array_udiff() 比較數組,傳回差集(只比較值,使用一個使用者自訂的鍵名比較函數)。
array_udiff_assoc() 比較數組,傳回差集(比較鍵和值,使用內建函數比較鍵名,使用使用者自訂函數比較鍵值) 。
array_udiff_uassoc() 比較數組,傳回差集(比較鍵和值,使用兩個使用者自訂的鍵名比較函數)。
array_uintersect() 比較數組,傳回交集(只比較值,使用一個使用者自訂的鍵名比較函數)。
array_uintersect_assoc() 比較數組,傳回交集(比較鍵和值,使用內建函數比較鍵名,使用使用者自訂函數比較鍵值)。
array_uintersect_uassoc() 比較數組,傳回交集(比較鍵和值,使用兩個使用者自訂的鍵名比較函數)。
array_unique() 刪除陣列中的重複值。
array_unshift() 在陣列開頭插入一個或多個元素。
array_values() 傳回陣列中所有的值。
array_walk() 對陣列中的每個成員套用使用者函數。
array_walk_recursive() 對陣列中的每個成員遞歸地套用使用者函數。
arsort() 對關聯陣列依照鍵值進行降序排序。
asort() 對關聯陣列依照鍵值進行升序排序。
compact() 建立包含變數名稱和它們的值的陣列。
count() 傳回陣列中元素的數目。
current() 傳回陣列中的目前元素。
each() 傳回數組中目前的鍵/值對。
end() 將陣列的內部指標指向最後一個元素。
extract() 從陣列中將變數匯入到目前的符號表。
in_array() 檢查陣列中是否存在指定的值。
key() 從關聯陣列取得鍵名。
krsort() 對陣列依照鍵名逆向排序。
ksort() 對陣列依照鍵名排序。
list() 把陣列中的值賦給一些變數。
natcasesort() 以「自然排序」演算法對陣列進行不區分大小寫字母的排序。
natsort() 用「自然排序」演算法對陣列排序。
next() 將陣列中的內部指標向前移動一位。
pos() current() 的別名。
prev() 將陣列的內部指標倒回一位。
range() 建立包含指定範圍單元的陣列。
reset() 將陣列的內部指標指向第一個元素。
rsort() 對陣列逆向排序。
shuffle() 將陣列打亂。
sizeof() count() 的別名。
sort() 對陣列排序。
uasort() 使用使用者自訂的比較函數對陣列中的鍵值進行排序。
uksort() 使用使用者自訂的比較函數對陣列中的鍵名進行排序。
usort() 使用使用者自訂的比較函數對陣列進行排序。

以上是php數組(Array函數)的處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
解釋負載平衡如何影響會話管理以及如何解決。解釋負載平衡如何影響會話管理以及如何解決。Apr 29, 2025 am 12:42 AM

負載均衡會影響會話管理,但可以通過會話複製、會話粘性和集中式會話存儲解決。 1.會話複製在服務器間複製會話數據。 2.會話粘性將用戶請求定向到同一服務器。 3.集中式會話存儲使用獨立服務器如Redis存儲會話數據,確保數據共享。

說明會話鎖定的概念。說明會話鎖定的概念。Apr 29, 2025 am 12:39 AM

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

有其他PHP會議的選擇嗎?有其他PHP會議的選擇嗎?Apr 29, 2025 am 12:36 AM

PHP會話的替代方案包括Cookies、Token-basedAuthentication、Database-basedSessions和Redis/Memcached。 1.Cookies通過在客戶端存儲數據來管理會話,簡單但安全性低。 2.Token-basedAuthentication使用令牌驗證用戶,安全性高但需額外邏輯。 3.Database-basedSessions將數據存儲在數據庫中,擴展性好但可能影響性能。 4.Redis/Memcached使用分佈式緩存提高性能和擴展性,但需額外配

在PHP的上下文中定義'會話劫持”一詞。在PHP的上下文中定義'會話劫持”一詞。Apr 29, 2025 am 12:33 AM

Sessionhijacking是指攻擊者通過獲取用戶的sessionID來冒充用戶。防範方法包括:1)使用HTTPS加密通信;2)驗證sessionID的來源;3)使用安全的sessionID生成算法;4)定期更新sessionID。

PHP的完整形式是什麼?PHP的完整形式是什麼?Apr 28, 2025 pm 04:58 PM

文章討論了PHP,詳細介紹了其完整形式,在We​​b開發中的主要用途,與Python和Java的比較以及對初學者的學習便利性。

PHP如何處理形式數據?PHP如何處理形式數據?Apr 28, 2025 pm 04:57 PM

PHP使用$ \ _ post和$ \ _獲取超級全局的php處理數據,並通過驗證,消毒和安全數據庫交互確保安全性。

PHP和ASP.NET有什麼區別?PHP和ASP.NET有什麼區別?Apr 28, 2025 pm 04:56 PM

本文比較了PHP和ASP.NET,重點是它們對大規模Web應用程序,性能差異和安全功能的適用性。兩者對於大型項目都是可行的,但是PHP是開源和無關的,而ASP.NET,

PHP是對病例敏感的語言嗎?PHP是對病例敏感的語言嗎?Apr 28, 2025 pm 04:55 PM

PHP的情況敏感性各不相同:功能不敏感,而變量和類是敏感的。最佳實踐包括一致的命名和使用對案例不敏感的功能進行比較。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具