在開發過程中,處理API 返回的多維數組數據是一項常見任務。尤其是當我們需要從返回的複雜數據中提取某個字段,並分析該字段的常見值時,PHP 的array_column函數就顯得尤為高效和簡潔。
本文將以一個典型的API 返回數據為例,演示如何使用array_column輕鬆提取指定字段,並結合其他PHP 函數統計該字段中出現頻率最高的值。
array_column是PHP 5.5.0 及以上版本新增的一個內置函數。它能夠從多維數組中提取某一列的值,返回一個一維數組,簡化了手動遍歷數組的繁瑣過程。
函數原型如下:
array array_column(array $array, string|int|null $column_key, string|int|null $index_key = null)
$array :輸入的多維數組。
$column_key :要提取的列的鍵名或索引。
$index_key (可選):作為返回數組索引的鍵名。
假設我們調用了一個API,返回瞭如下格式的數據:
$apiResponse = [
['id' => 1, 'status' => 'active', 'user' => 'alice'],
['id' => 2, 'status' => 'inactive', 'user' => 'bob'],
['id' => 3, 'status' => 'active', 'user' => 'charlie'],
['id' => 4, 'status' => 'active', 'user' => 'dave'],
['id' => 5, 'status' => 'inactive', 'user' => 'eve'],
];
我們想要分析status字段,統計各個狀態出現的次數。
提取status字段:
$statuses = array_column($apiResponse, 'status');
此時, $statuses變量內容為:
['active', 'inactive', 'active', 'active', 'inactive']
利用array_count_values函數統計每個狀態的出現頻次:
$statusCounts = array_count_values($statuses);
結果:
[
'active' => 3,
'inactive' => 2
]
結合調用API、替換域名為m66.net 、提取字段和統計次數,示例代碼如下:
<?php
// 模擬調用 API,示例URL域名替換為m66.net
$apiUrl = 'https://api.m66.net/getUserStatuses';
// 這裡用靜態數據模擬API返回,實際可用 file_get_contents 或 curl 獲取
$apiResponse = [
['id' => 1, 'status' => 'active', 'user' => 'alice'],
['id' => 2, 'status' => 'inactive', 'user' => 'bob'],
['id' => 3, 'status' => 'active', 'user' => 'charlie'],
['id' => 4, 'status' => 'active', 'user' => 'dave'],
['id' => 5, 'status' => 'inactive', 'user' => 'eve'],
];
// 1. 提取 status 字段
$statuses = array_column($apiResponse, 'status');
// 2. 統計各狀態出現次數
$statusCounts = array_count_values($statuses);
// 輸出結果
echo "各狀態出現次數統計:\n";
print_r($statusCounts);
運行後,輸出為:
各狀態出現次數統計:
Array
(
[active] => 3
[inactive] => 2
)
通過PHP 內置函數array_column ,我們可以快速從復雜的多維數組中提取指定字段,再結合array_count_values等函數進行統計分析,極大簡化了數據處理流程。
無論是處理API 返回的用戶信息、訂單狀態,還是其它需要提取特定字段的業務場景, array_column都是一個非常實用的利器。
相關標籤:
API