PHP遞歸調(diào)用數(shù)組值并用其執(zhí)行指定函數(shù)的方法
本文實例講述了PHP遞歸調(diào)用數(shù)組值并用其執(zhí)行指定函數(shù)的方法。分享給大家供大家參考。具體分析如下:
以下為wordpress原代碼,為了偷懶,簡單修改一下以適用其它函數(shù)
/** * Navigates through an array and removes slashes from the values. * * If an array is passed, the array_map() function causes a callback to pass the * value back to the function. The slashes from this value will removed. * * @since 2.0.0 * * @param mixed $value The value to be stripped. * @return mixed Stripped value. */ function stripslashes_deep($value) { if ( is_array($value) ) { $value = array_map('stripslashes_deep', $value); } elseif ( is_object($value) ) { $vars = get_object_vars( $value ); foreach ($vars as $key=>$data) { $value->{$key} = stripslashes_deep( $data ); } } elseif ( is_string( $value ) ) { $value = stripslashes($value); } return $value; }
代碼如下:
<?php function function_deep($function,$value) { try { if(!function_exists($function)){ $error = '"'.$function.'" is undefined'; throw new Exception($error); } } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; die(); } if ( is_array($value) ) { $fun = Array(); for($i=1;$i<=count($value);$i++){ $fun[] = $function; } $value = array_map("function_deep",$fun, $value); } elseif ( is_object($value) ) { $vars = get_object_vars( $value ); foreach ($vars as $key=>$data) { $value->{$key} = function_deep($function,$data ); } } elseif ( is_string( $value ) ) { $value = call_user_func($function,$value); } return $value; } $arr = array( "I'm bean", "I'm bean", array("I'm bean","I'm bean") ); var_dump(function_deep("addslashes",$arr)); // 輸出結(jié)果 // array (size=3) // 0 => string 'I\'m bean' (length=9) // 1 => string 'I\'m bean' (length=9) // 2 => // array (size=2) // 0 => string 'I\'m bean' (length=9) // 1 => string 'I\'m bean' (length=9) ?>
希望本文所述對大家的php程序設(shè)計有所幫助。
- php數(shù)組函數(shù)array_key_exists()小結(jié)
- PHP中對數(shù)組的一些常用的增、刪、插操作函數(shù)總結(jié)
- PHP數(shù)組和explode函數(shù)示例總結(jié)
- PHP數(shù)組相關(guān)函數(shù)匯總
- php通過array_merge()函數(shù)合并兩個數(shù)組的方法
- php通過array_push()函數(shù)添加多個變量到數(shù)組末尾的方法
- php通過array_unshift函數(shù)添加多個變量到數(shù)組前端的方法
- php通過array_shift()函數(shù)移除數(shù)組第一個元素的方法
- PHP中的數(shù)組處理函數(shù)實例總結(jié)
相關(guān)文章
利用PHP獲取訪客IP、地區(qū)位置、瀏覽器及來源頁面等信息
這篇文章主要介紹了利用PHP獲取訪客IP、地區(qū)位置、瀏覽器及來源頁面等信息的相關(guān)資料,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),對大家具有一定的參考借鑒價值,需要的朋友們下面來一起看看吧。2017-06-06php download.php實現(xiàn)代碼 跳轉(zhuǎn)到下載文件(response.redirect)
一直對php不太熟悉,今天需要類型asp的 response.redirect語句,但一直沒有很好的解決方法。下面是問了朋友才知道的。2009-08-08推薦Discuz!5的PHP代碼高亮顯示與實現(xiàn)可運行代碼
推薦Discuz!5的PHP代碼高亮顯示與實現(xiàn)可運行代碼...2007-03-03php 靜態(tài)屬性和靜態(tài)方法區(qū)別詳解
這篇文章主要介紹了php 靜態(tài)屬性和靜態(tài)方法區(qū)別詳解,需要的朋友可以參考下2017-04-04redis+php實現(xiàn)微博(二)發(fā)布與關(guān)注功能詳解
這篇文章主要介紹了redis+php實現(xiàn)微博發(fā)布與關(guān)注功能,結(jié)合實例形式分析了php結(jié)合redis實現(xiàn)微博的發(fā)布及關(guān)注相關(guān)操作技巧,需要的朋友可以參考下2019-09-09php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究
這篇文章主要介紹了php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-02-02PHP swoole的process模塊創(chuàng)建和使用子進(jìn)程操作示例
這篇文章主要介紹了PHP swoole的process模塊創(chuàng)建和使用子進(jìn)程操作,結(jié)合實例形式分析了swoole的進(jìn)程管理process模塊實現(xiàn)進(jìn)程間通信相關(guān)操作技巧,需要的朋友可以參考下2020-03-03