PHP遞歸調(diào)用數(shù)組值并用其執(zhí)行指定函數(shù)的方法
本文實(shí)例講述了PHP遞歸調(diào)用數(shù)組值并用其執(zhí)行指定函數(shù)的方法。分享給大家供大家參考。具體分析如下:
以下為wordpress原代碼,為了偷懶,簡(jiǎn)單修改一下以適用其它函數(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) ?>
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
- php數(shù)組函數(shù)array_key_exists()小結(jié)
- PHP中對(duì)數(shù)組的一些常用的增、刪、插操作函數(shù)總結(jié)
- PHP數(shù)組和explode函數(shù)示例總結(jié)
- PHP數(shù)組相關(guān)函數(shù)匯總
- php通過(guò)array_merge()函數(shù)合并兩個(gè)數(shù)組的方法
- php通過(guò)array_push()函數(shù)添加多個(gè)變量到數(shù)組末尾的方法
- php通過(guò)array_unshift函數(shù)添加多個(gè)變量到數(shù)組前端的方法
- php通過(guò)array_shift()函數(shù)移除數(shù)組第一個(gè)元素的方法
- PHP中的數(shù)組處理函數(shù)實(shí)例總結(jié)
相關(guān)文章
利用PHP獲取訪客IP、地區(qū)位置、瀏覽器及來(lái)源頁(yè)面等信息
這篇文章主要介紹了利用PHP獲取訪客IP、地區(qū)位置、瀏覽器及來(lái)源頁(yè)面等信息的相關(guān)資料,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),對(duì)大家具有一定的參考借鑒價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06php download.php實(shí)現(xiàn)代碼 跳轉(zhuǎn)到下載文件(response.redirect)
一直對(duì)php不太熟悉,今天需要類(lèi)型asp的 response.redirect語(yǔ)句,但一直沒(méi)有很好的解決方法。下面是問(wèn)了朋友才知道的。2009-08-08推薦Discuz!5的PHP代碼高亮顯示與實(shí)現(xiàn)可運(yùn)行代碼
推薦Discuz!5的PHP代碼高亮顯示與實(shí)現(xiàn)可運(yùn)行代碼...2007-03-03php 靜態(tài)屬性和靜態(tài)方法區(qū)別詳解
這篇文章主要介紹了php 靜態(tài)屬性和靜態(tài)方法區(qū)別詳解,需要的朋友可以參考下2017-04-04redis+php實(shí)現(xiàn)微博(二)發(fā)布與關(guān)注功能詳解
這篇文章主要介紹了redis+php實(shí)現(xiàn)微博發(fā)布與關(guān)注功能,結(jié)合實(shí)例形式分析了php結(jié)合redis實(shí)現(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ì),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-02-02PHP實(shí)現(xiàn)排序堆排序(Heap Sort)算法
這篇文章主要為大家詳細(xì)介紹了PHP實(shí)現(xiàn)排序堆排序(Heap Sort)算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01PHP swoole的process模塊創(chuàng)建和使用子進(jìn)程操作示例
這篇文章主要介紹了PHP swoole的process模塊創(chuàng)建和使用子進(jìn)程操作,結(jié)合實(shí)例形式分析了swoole的進(jìn)程管理process模塊實(shí)現(xiàn)進(jìn)程間通信相關(guān)操作技巧,需要的朋友可以參考下2020-03-03