如何在 PHP 中檢查陣列是關聯陣列還是順序陣列
什麼是關聯陣列?
關聯陣列是一種陣列型別,其中每個元素都與一個特定的鍵相關聯,而不是像順序陣列那樣分配一個數字索引。換句話說,您可以使用相應的鍵訪問它們,而不是按其位置訪問陣列元素。
在關聯陣列中,鍵可以是字串或整數。每個鍵在陣列中都是唯一的,這意味著沒有兩個元素可以具有相同的鍵。關聯陣列中的值可以是任何資料型別,例如字串、數字、布林值、物件,甚至其他陣列。
示例
<?php $person = array( 'name' => 'John', 'age' => 30, 'city' => 'New York' ); echo $person['name']; echo $person['age']; echo $person['city']; ?>
輸出
John30New York
什麼是順序陣列?
順序陣列,也稱為索引陣列,是一種陣列型別,其中元素被分配數字索引,這些索引表示它們在陣列中的位置。索引從第一個元素的 0 開始,並且對於每個後續元素遞增 1。
在順序陣列中,元素的鍵由 PHP 根據元素新增到陣列的順序自動分配。這些鍵是表示每個元素的位置或索引的整數。
示例
<?php // Example of sequential array $arr = array(10,20,30,40); // 1st element echo $arr[0] . "
"; // 2nd element echo $arr[1] . "
"; // 3rd element echo $arr[2] . "
"; // 4th element echo $arr[3] . "
"; ?>
輸出
10 20 30 40
如何在 PHP 中檢查陣列是關聯陣列還是順序陣列
要檢查 PHP 中的陣列是關聯陣列還是順序陣列,可以使用 array_keys() 函式並將生成的鍵陣列與原始陣列進行比較。
Array_keys() 函式
PHP 中的 array_keys() 函式用於從陣列中檢索所有鍵或鍵的子集。它返回一個包含輸入陣列鍵的新陣列。
語法
array_keys() 函式的一般語法為
array_keys(array $array, mixed $search_value = null, bool $strict = false): array
引數
$array:要從中提取鍵的輸入陣列。
$search_value (可選):如果提供,array_keys() 將僅返回給定值的鍵。
$strict (可選):確定比較應該是嚴格的 (true) 還是寬鬆的 (false)。預設情況下,它設定為 false,這意味著使用寬鬆比較。
示例
<?php
$array = ['apple', 'banana', 'orange'];
$keys = array_keys($array);
if ($keys !== range(0, count($array) - 1)) {
// Associative array
echo 'Associative array';
} else {
// sequential array
echo 'Sequential array';
}
?>
輸出
Sequential array
在此示例中,我們有一個包含元素 'apple'、'banana' 和 'orange' 的陣列 $array。我們使用 array_keys() 函式檢索陣列的鍵,然後使用 !== 運算子將這些鍵與從 0 到 count($array) - 1 的數字索引範圍進行比較。如果陣列的鍵 ($keys) 不等於預期的順序索引,則表示該陣列是關聯陣列。在這種情況下,輸出將為“關聯陣列”。如果陣列的鍵與預期的順序索引匹配,則表示該陣列是順序陣列。在這種情況下,輸出將為“順序陣列”。
結論
在 PHP 中,您可以透過檢查陣列的鍵來檢查陣列是關聯陣列還是順序陣列。如果鍵是非數字或不是從 0 開始的順序數字,則該陣列被視為關聯陣列。否則,如果鍵是從 0 開始的順序整數,則該陣列是順序陣列。要執行此檢查,您可以使用 array_keys() 函式檢索陣列鍵並將其與預期模式進行比較。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP