Home >Backend Development >PHP Tutorial >php数组array_filter()函数和array_slice()函数

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

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

/*  

 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));  

?>  


运行结果:


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn