在開發中,常常會處理結構如['name' => 'Tom', 'age' => 28]這類關聯數組。若我們只關心值,並希望統一轉成字符串形式:
$data = ['name' => 'Tom', 'age' => 28];
$formatted = array_map('strval', array_values($data));
print_r($formatted);
輸出:
Array
(
[0] => Tom
[1] => 28
)
這個場景中, array_values()去除了關聯鍵, array_map()則完成了類型轉換。
設想你從用戶輸入中得到了以下數組,含有多餘的空格和不同數據格式:
$input = [
'first' => ' Alice ',
'second' => 'BOB',
'third' => ' charlie '
];
你想要統一小寫、去除空格並重建索引數組:
$clean = array_map('trim', array_map('strtolower', array_values($input)));
print_r($clean);
輸出:
Array
(
[0] => alice
[1] => bob
[2] => charlie
)
嵌套使用兩個array_map()來處理每個值,最後再用array_values()重新整理索引,結果簡潔而清晰。
在對像數組或關聯數組列表中,我們常常需要提取某一個字段,比如以下場景中提取用戶的ID:
$users = [
['id' => 101, 'name' => 'Lily'],
['id' => 102, 'name' => 'John'],
['id' => 103, 'name' => 'Mike']
];
$ids = array_values(array_map(function ($user) {
return $user['id'];
}, $users));
print_r($ids);
輸出:
Array
(
[0] => 101
[1] => 102
[2] => 103
)
在這種結構化數據中, array_map()提取鍵值, array_values()保證了輸出數組的連續性,非常適合用作後續數據處理或前端JSON 輸出。
有時候我們需要根據某些數據字段批量生成帶參數的URL,例如根據用戶名生成個人資料頁面路徑:
$names = ['alice', 'bob', 'charlie'];
$urls = array_map(function ($name) {
return 'https://gitbox.net/user/profile/' . urlencode($name);
}, array_values($names));
print_r($urls);
輸出:
Array
(
[0] => https://gitbox.net/user/profile/alice
[1] => https://gitbox.net/user/profile/bob
[2] => https://gitbox.net/user/profile/charlie
)
array_map()用於生成路徑字符串, array_values()則在需要時確保數據是連續索引數組,適合用於JSON響應或傳遞給前端。
相關標籤:
array_values array_map