[英]filter array by key
我有這個小功能可以通過鍵過濾數組:
private function filterMyArray( )
{
function check( $v )
{
return $v['type'] == 'video';
}
return array_filter( $array, 'check' );
}
這很好用,但是由於我有更多要過濾的鍵,我在想從主函數傳遞變量的方法: filterMyArray($key_to_serch)
沒有成功,我也嘗試了全局變量,但似乎不起作用。
由於我的問題有些困惑:),我需要這樣的東西:
private function filterMyArray( $key_to_serch )
{
function check( $v )
{
return $v['type'] == $key_to_serch;
}
return array_filter( $array, 'check' );
}
知道要傳遞該變量嗎?
這是PHP 5.3中的匿名函數派上用場的地方(請注意use的use
):
private function filterMyArray($key)
{
return array_filter(
$array,
function check($v) use($key) {
return $v['type'] == $key;
}
);
}
private function filterMyArray($key_to_search) {
function check( $v ) {
return $v[$key_to_search] == 'video';
}
return array_filter( $array, 'check' );
}
應該起作用,因為內部函數可以訪問外部函數中的變量
這是使用create_function的PHP <5.3版本。
private function filterMyArray( $key)
{
$fn = create_function( '$v', "return $v[$key] == 'video';");
return array_filter( $array, $fn);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.