Heim >Backend-Entwicklung >PHP-Tutorial >php数组array_filter()函数和array_slice()函数

php数组array_filter()函数和array_slice()函数

WBOY
WBOYOriginal
2016-06-23 13:37:541424Durchsuche

/*  

 array_filter()用回调函数过滤数组中的单元 

 array_filter(array,function) 

 参数描述:如果自定义过滤函数返回 true,则被操作的数组的当前值就会被包含在返回的结果数组中,  

           并将结果组成一个新的数组,如果原数组是一个关联数组,键名保持不变。 

 */    

function delEmpty($val) {      

    if ($val === "" || $val === "php") {   //当数组中存在空值和php值时,换回false,也就是去掉该数组中的空值和php值    

        return false;      

    }      

    return true;      

}      

$input_array = array('A'=>"Java",   

                     'B'=>false,   

                     'B1'=>true,   

                     'C'=>"",   

                     'D'=>" ",   

                     'E'=>null,   

                     'G'=>0,   

                     'G1'=>'0',   

                     'H'=>'php');    

print_r(array_filter($input_array));  

print_r(array_filter($input_array, "delEmpty"));    

?>  


没有回调函数的运行结果:

可以看出,false,null,和真正的''空白以及0都被过滤了,而且数组的下标没有改变. 

有回调函数的运行结果:

[php] view plaincopyprint?

/** 

 * array_slice()函数 从数组中取出一段 

 * array_slice(array array, int offset[, int length]) 

 * 根据 offset 和 length 参数所指定的 array 数组中的一段序列。 

 * offset 表示开始位置,length表示这段序列的长度. 

 * true 键不改变 

 */  

$input = array("Java", "Php",   

               "C++",  "C#",   

               "Ruby", "Object-c");  

  

$outputA = array_slice($input, 2);      // returns "C++", "C#", "Ruby", "Object-c"  

$outputB = array_slice($input, -2, 1);  // returns "Ruby"  

$outputC = array_slice($input, 1, 3);   // returns "Php", "C++", "C#"  

print_r($outputA);  

print_r($outputB);  

print_r($outputC);  

print_r(array_slice($input, 2, -1, true));  

print_r(array_slice($input, 2, -1));  

?>  


运行结果:


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn