欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php arraymaprecursive

李中冰1年前7瀏覽0評論

php array_map_recursive是一個非常強大有用的函數,它可以遞歸地遍歷多維數組,并對每一個元素應用一個回調函數。該函數返回的是一個新的數組,其中每一個元素都是原數組元素經過回調函數處理后的結果。

下面來舉幾個例子,通過array_map_recursive來實現一些常見的數據處理任務:

// 二維數組元素加上一個常數
function add_const_recursive($arr, $const) {
return array_map_recursive(function($x) use ($const) {
return $x + $const;
}, $arr);
}
$arr = [[1, 2], [3, 4]];
$new_arr = add_const_recursive($arr, 10);
var_dump($new_arr); // 輸出[[11, 12], [13, 14]]
// 二維數組元素拼上一個字符串
function concat_str_recursive($arr, $str) {
return array_map_recursive(function($x) use ($str) {
return $x . $str;
}, $arr);
}
$arr = [['foo', 'bar'], ['hello', 'world']];
$new_arr = concat_str_recursive($arr, '-');
var_dump($new_arr); // 輸出[['foo-', 'bar-'], ['hello-', 'world-']]

上面的例子展示了array_map_recursive的核心用法:遞歸地遍歷數組,并對每一個元素應用一個回調函數。

在實際的應用中,我們可能還需要對多維數組進行一些更復雜的操作。下面是一些更高級的用法示例:

// 將二維數組轉成一維數組
function flatten_recursive($arr) {
$result = [];
array_map_recursive(function($x) use (&$result) {
$result[] = $x;
}, $arr);
return $result;
}
$arr = [[1, 2], [3, 4]];
$new_arr = flatten_recursive($arr);
var_dump($new_arr); // 輸出[1, 2, 3, 4]
// 將二維數組中的某個值作為鍵名
function to_assoc_recursive($arr, $key) {
$result = [];
array_map_recursive(function($x) use (&$result, $key) {
if (isset($x[$key])) {
$result[$x[$key]] = $x;
}
}, $arr);
return $result;
}
$arr = [['id' =>1, 'name' =>'foo'], ['id' =>2, 'name' =>'bar']];
$new_arr = to_assoc_recursive($arr, 'id');
var_dump($new_arr); // 輸出[1 =>['id' =>1, 'name' =>'foo'], 2 =>['id' =>2, 'name' =>'bar']]

其中,flatten_recursive函數通過遞歸地遍歷多維數組,將所有元素都放到一個一維數組中。to_assoc_recursive函數則是把二維數組中的某一個元素作為鍵名,把整個子數組作為鍵值。這些例子都展示了array_map_recursive很靈活的特性,可以用于非常多樣的數據處理任務。

總而言之,array_map_recursive是一個非常強大有用的函數,可以遞歸地遍歷多維數組,并對每一個元素應用一個回調函數。它的用途非常廣泛,可以實現很多復雜的數據處理任務。使用時只需要傳入一個回調函數和要操作的數組,函數就會返回一個新的數組,其中每一個元素都是原數組元素經過回調函數處理后的結果。