首頁  >  文章  >  後端開發  >  PHP 中的關聯數組 

PHP 中的關聯數組 

WBOY
WBOY原創
2024-08-29 12:44:16342瀏覽

數組是相似和不相似資料類型的集合。數組儲存與變數相關的資料。我們需要數組來創建這麼多數量的變數值並將其儲存在一個變數中。 PHP 中的陣列分為三種類型。數值數組、關聯數組和多維數組。關聯數組採用鍵值對的形式,其中鍵是數組的索引,值是數組的元素。這裡的鍵可以是使用者定義的。它與數值數組類似,但鍵和值以鍵值對的形式儲存。

在本主題中,我們將學習 PHP 中的關聯陣列。

廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

文法

//First Way
$input = array("key1"=>"value1", "key2"=>"value2", "key3"=>"value3");
//Second Way
$input["key1"] = value1;
$input["key2"] = value2;
$input["key3"] = value3;

其中 $input 是數組名稱,key1 是數組元素的索引,value1 是數組元素的值

如何在 PHP 中建立關聯數組?

關聯數組是使用 array 關鍵字聲明的。數組中的鍵值使用“=>”箭頭聲明。有兩種方法可以建立關聯數組。

以下是範例。

代碼:

<?php
// create associative array
// first way
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
// second way
$family["father"] = "Mohan";
$family["mother"] = "Sita";
$family["son"] = "Raj";
$family["daughter"] = "Mona";
?>

如何使用各種方法在 PHP 中遍歷關聯數組

我們可以透過兩種方法來遍歷關聯數組。一是foreach循環,二是for循環。

方法#1

在此範例中,宣告了一個陣列並將其命名為 $family。此陣列採用鍵值形式,其中鍵為父親、母親、兒子、女兒等關係的名稱。每個鍵都保存關係的名稱,例如索引“父親”的第一個值是Mohan,索引“母親”的第二個值是Sita,索引“兒子”的第三個值是Raj,索引“女兒”的第四個值是Mona。為了遍歷這個數組,我們使用 foreach 循環,在該循環中,我們將鍵列印為 Father、Mother、Son、Daughter,將值列印為數組的 Mohan、Sita、Raj 和 Mona。

代碼:

<?php
//example of the associative array
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
//first method to traverse the associative array
foreach($family as $key=>$value) {
echo $key .' is '.$value;
echo '<br>';
}
?>

方法#2

在此範例中,我們將使用與上一個範例相同的陣列族,並使用 for 迴圈進行遍歷。另外,我們將使用 array_keys 函數來取得陣列的鍵,即父親、母親、兒子和女兒。這些鍵以數組的形式傳回。 array_keys 函數採用輸入數組作為參數並輸出索引數組。現在為了迭代這個循環,我們將使用 for 循環並根據需要列印鍵和值。

代碼:

<strong> </strong><?php
// Example to demonstrate for loop
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
$length = count($family);
$keys = array_keys($family);
// for loop to traverse associative array
for($i=0; $i<$length; $i++) {
echo "<br>". $keys[$i] . " => " . $family[$keys[$i]];
}
?>

輸出:

PHP 中的關聯數組 

PHP 中關聯數組的優點

  1. 有不同的函數可用來合併兩個關聯數組。
  2. 類似使用者清單、堆疊、佇列等
  3. 使用陣列中的索引,有助於記憶資料
  4. 這些索引是使用者定義的,可以進行相應更改。
  5. 超全域數組如 $_POST、$_GET、$_SESSION 陣列也支援關聯數組。

PHP 中關聯數組依數值排序

關聯數組可以透過基於鍵和基於值兩種方式進行排序。在這裡,我們將學習如何按值對關聯數組進行排序。有兩個內建的 php 函數,例如 asort() 和 asort(),它們用於按字母順序按值對關聯數組進行排序。

讓我們透過一個例子來學習。

1。 asort(): 依值升序對關聯數組進行排序

代碼:

<?php
// example to demonstrate asort() function on associative array by value in ascending order
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
print_r($family);
asort($family);
echo "<br>";
print_r($family);
?>

輸出:

PHP 中的關聯數組 

2。 arsort(): 依值降序對關聯陣列進行排序

代碼:

<?php
// example to demonstrate asort() function on associative array by value in descending order
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
echo "<br>Before Sort";
print_r($family);
arsort($family);
echo "<br>After Sort";
print_r($family);
?>

輸出:

PHP 中的關聯數組 

PHP 中關聯數組按鍵排序

關聯數組可以依值升序排序。以類似的方式,關聯數組可以按字母順序按升序和降序對關聯數組進行排序,如下例所示。

1。 ksort(): 依鍵升序對關聯陣列進行排序

代碼:

<?php
// example to demonstrate ksort() function on associative array by key in ascending order
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
echo "<br>Before Sort";
print_r($family);
ksort($family);
echo "<br>After Sort";
print_r($family);
?>

輸出:

PHP 中的關聯數組 

2. krsort(): performs a sort on associative array according to the key in descending order

Code:

<?php
// example to demonstrate krsort() function on associative array by key in descending order
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
echo "<br>Before Sort";
print_r($family);
krsort($family);
echo "<br>After Sort";
print_r($family);
?>

Output:

PHP 中的關聯數組 

Conclusion

Programs starting from basic like the syntax, creating the array, and traverse through the array are explained. Also, topics like advantages of the associative array and how to perform sorting on the associative array are also mentioned.

以上是PHP 中的關聯數組 的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP 數組長度下一篇:PHP 數組長度