PHP 第二周函数学习记录 
                                                    
                        
                    
                    
  
                    
                    array_pad()
作用
函数将指定数量的带有指定值的元素插入到数组中。
用法
array_pad(array, size, value)
测试案例
$a=array("red", "green");
print_r(array_pad($a, 5, "blue"));
结果
Array ( 
    [0] => red
    [1] => green
    [2] => blue 
    [3] => blue 
    [4] => blue 
)
array_pop()
作用
函数删除数组中的最后一个元素。
用法
array_pop(array)
测试案例
$a=array("red", "green", "blue");
array_pop($a);
print_r($a);
结果
Array ( 
    [0] => red
    [1] => green 
)
array_product()
作用
数计算并返回数组的乘积。
用法
array_product(array)
测试案例
$a=array(5, 5, 2, 10);
echo(array_product($a));
结果
500
array_push()
作用
向数组尾部插入一个或多个元素
用法
array_push(array, value1, value2...)
测试案例
$a=array("a"=>"red", "b"=>"green");
array_push($a, "blue", "yellow");
print_r($a);
结果
Array ( 
    [a] => red
    [b] => green
    [0] => blue 
    [1] => yellow 
)
array_rand()
作用
函数返回数组中的一个随机键名,或者如果指定函数返回键名不只一个,则返回一个包含随机键名的数组
用法
array_rand(array, number)
测试案例
$a=array("a"=>"red", "b"=>"green", "c"=>"blue", "d"=>"yellow");
print_r(array_rand($a, 2));
结果
Array ( 
    [0] => a
    [1] => b
)
array_reduce()
作用
函数发送数组中的值到用户自定义函数,并返回一个字符串
用法
array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] ) 
initial   如果指定了可选参数 `initial`,该参数将在处理开始前使用,或者当处理结束,数组为空时的最后一个结果
callback 函数
callback ( mixed $carry , mixed $item )
carry 携带上次迭代里的值; 如果本次迭代是第一次,那么这个值是 initial。
item  携带了本次迭代的值。
测试案例
function myfunction($v1,$v2)
{
    echo 'v1:';
    print_r($v1);
    echo "<br>";
    echo 'v2:';
    print_r($v2);
    echo "<br>";
    return $v1 . "-" . $v2;
}
$a=array('a'=>"Dog",'b'=>"Cat",'c'=>"Horse", 'a');
print_r(array_reduce($a,"myfunction"));
echo "<br>";
echo "------------------------------------";
echo "<br>";
print_r(array_reduce($a,"myfunction", 5));
结果
v1:
v2:Dog
v1:-Dog
v2:Cat
v1:-Dog-Cat
v2:Horse
v1:-Dog-Cat-Horse
v2:a
-Dog-Cat-Horse-a
------------------------------------
v1:5
v2:Dog
v1:5-Dog
v2:Cat
v1:5-Dog-Cat
v2:Horse
v1:5-Dog-Cat-Horse
v2:a
5-Dog-Cat-Horse-a
测试案例2
function sum($carry, $item)
{
    $carry += $item;
    return $carry;
}
$a = array(1, 2, 3, 4, 5);
print_r(array_reduce($a, "sum")); 
结果2
15
array_replace()
作用
使用后面数组的值替换第一个数组的值
用法
array_replace(array1,array2,array3...)
测试案例
$a1=array("a"=>"red", "green");
$a2=array("a"=>"orange", "b"=>"burgundy");
print_r(array_replace($a1, $a2));
结果
Array ( 
    [a] => orange 
    [0] => green 
    [b] => burgundy 
)
array_replace_recursive()
作用
函数递归地使用后面数组的值替换第一个数组的值
用法
array_replace_recursive(array1,array2,array3...)
测试案例
$a1=array(
    "a"=>array("red"),
    "b"=>array("green","blue"),
);
$a2=array(
    "a"=>array("yellow"),
    "b"=>array("black")
);
$result=array_replace_recursive($a1,$a2);
print_r($result);
$result=array_replace($a1,$a2);
print_r($result);
结果
Array ( 
    [a] => Array ( 
        [0] => yellow 
    )
    [b] => Array (
        [0] => black 
        [1] => blue 
    ) 
) 
Array (
    [a] => Array (
        [0] => yellow 
    ) 
    [b] => Array ( 
        [0] => black
    ) 
)
array_reverse()
作用
函数返回翻转顺序的数组。
用法
array_reverse(array,preserve)
preserve    可选。规定是否保留原始数组的键名。
            如果设置为 TRUE 会保留数字的键。 非数字的键则不受这个设置的影响,总是会被保留。
            可能的值:true false
测试案例
$a=array("Volvo","XC90",array("BMW","Toyota"));
$reverse=array_reverse($a);
$preserve=array_reverse($a,true);
print_r($a);
print_r($reverse);
print_r($preserve);
结果
Array (
    [0] => Volvo
    [1] => XC90
    [2] => Array ( 
        [0] => BMW 
        [1] => Toyota 
    ) 
) 
Array ( 
    [0] => Array ( 
        [0] => BMW 
        [1] => Toyota
        )
    [1] => XC90
    [2] => Volvo
) 
Array ( 
    [2] => Array ( 
        [0] => BMW
        [1] => Toyota
    ) 
    [1] => XC90 
    [0] => Volvo
)
array_search()
作用
函数在数组中搜索某个键值,并返回对应的键名。
用法
array_search(value,array,strict)
测试案例
$a=array("a"=>"5","b"=>5,"c"=>"5");
echo array_search(5,$a,true);
结果
b
array_shift()
作用
函数用于删除数组中的第一个元素,并返回被删除的元素。
用法
array_shift(array)
测试案例
$a=array(0=>"red",1=>"green",2=>"blue");
echo array_shift($a);
print_r ($a);
结果
red
Array ( [0] => green [1] => blue )
array_slice()
作用
返回数组中的选定部分
用法
array_slice(array,start,length,preserve)
preserve  函数是保留键名还是重置键名
          true 保留键名
          false  重置键名
测试案例
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,1,2,true));
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,1,2,false));
结果
Array ( [1] => green [2] => blue ) 
Array ( [0] => green [1] => blue )
array_splice()
作用
函数从数组中移除选定的元素,并用新元素取代它。函数也将返回被移除元素的数组。
用法
array_splice(array,start,length,array)
注释:不保留替代数组中的键名。
测试案例
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"purple","b"=>"orange");
print_r(array_splice($a1,0,2,$a2));
print_r($a1);
结果
Array ( [a] => red [b] => green ) 
Array ( 
    [0] => purple 
    [1] => orange 
    [c] => blue
    [d] => yellow 
)
array_sum()
作用
函数返回数组中所有值的和。
用法
array_sum(array)
测试案例
$a=array("a"=>52.2,"b"=>13.7,"c"=>0.9);
echo array_sum($a);
结果
66.8
array_udiff()
作用
函数用于比较两个(或更多个)数组的键值 ,并返回差集
用法
array_udiff(array1,array2,array3...,myfunction)
测试案例
function myfunction($a,$b)
{
   if ($a===$b)
   {
       return 0;
   }
   return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue","yellow");
$a2=array("A"=>"red","b"=>"GREEN","yellow","black");
$a3=array("a"=>"green","b"=>"red","yellow","black");
$result=array_udiff($a1,$a2,$a3,"myfunction");
print_r($result);
结果
Array ( [c] => blue )
array_udiff_assoc()
作用
函数用于比较两个(或更多个)数组的键名和键值,并返回差集。
用法
array_udiff_assoc(array1,array2,array3...,myfunction)
测试案例
function myfunction($a,$b)
{
    if ($a===$b)
    {
       return 0;
    }
    return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"blue","c"=>"green");
$result=array_udiff_assoc($a1,$a2,"myfunction");
print_r($result);
结果
Array ( [b] => green [c] => blue )
array_udiff_uassoc()
作用
函数用于比较两个(或更多个)数组的键名和键值,并返回差集。
用法
array_udiff_uassoc(array1,array2,array3...,myfunction_key,myfunction_value)
测试案例
function myfunction_key($a,$b)
{
    if ($a===$b)
    {
        return 0;
    }
    return ($a>$b)?1:-1;
}
function myfunction_value($a,$b)
{
    if ($a===$b)
    {
        return 0;
    }
    return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"green","c"=>"green");
$result=array_udiff_uassoc($a1,$a2,"myfunction_key","myfunction_value");
print_r($result);
结果
Array ( [c] => blue )
array_uintersect()
作用
用于比较两个(或更多个)数组的键值 ,并返回交集。
用法
array_uintersect(array1,array2,array3...,myfunction)
测试案例
function myfunction($a,$b)
{
        if ($a===$b)
        {
                return 0;
        }
        return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"blue","b"=>"black","e"=>"blue");
$result=array_uintersect($a1,$a2,"myfunction");
print_r($result);
结果
Array ( [c] => blue )
array_uintersect_assoc()
作用
函数用于比较两个(或更多个)数组的键名和键值 ,并返回交集
注释:该函数使用内建函数比较键名,使用用户自定义函数比较键值!
用法
array_uintersect_assoc(array1,array2,array3...,myfunction)
测试案例
function myfunction($a,$b)
{
if ($a===$b)
   {
   return 0;
   }
   return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"blue","c"=>"green");
$result=array_uintersect_assoc($a1,$a2,"myfunction");
print_r($result);
结果
Array ( [a] => red )
array_uintersect_uassoc()
作用
函数用于比较两个(或更多个)数组的键名和键值,并返回交集。
注释:该函数使用两个用户自定义函数进行比较;第一个函数比较键名,第二个函数比较键值!
用法
array_uintersect_uassoc(array1,array2,array3...,myfunction_key,myfunction_value)
测试案例
function myfunction_key($a,$b)
{
    if ($a===$b)
    {
        return 0;
    }
    return ($a>$b)?1:-1;
}
function myfunction_value($a,$b)
{
    if ($a===$b)
    {
       return 0;
    }
    return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"green","c"=>"green");
$result=array_uintersect_uassoc($a1,$a2,"myfunction_key","myfunction_value");
print_r($result);
结果
Array ( [a] => red [b] => green )
array_unique()
作用
函数用于移除数组中重复的值。如果两个或更多个数组值相同,只保留第一个值,其他的值被移除。
注释:被保留的数组将保持第一个数组项的键名类型。
用法
array_unique(array)
测试案例
$a=array("a"=>"red","b"=>"green","c"=>"red");
print_r(array_unique($a));
结果
Array ( [a] => red [b] => green )
array_unshift()
作用
函数用于向数组插入新元素。新数组的值将被插入到数组的开头。返回元素的个数
注释:数值键名将从 0 开始,以 1 递增。字符串键名将保持不变。
用法
array_unshift(array,value1,value2,value3...)
测试案例
$a=array("a"=>"red","b"=>"green");
print_r(array_unshift($a,"blue"));
print_r($a);
结果
3
Array ( 
    [0] => blue 
    [a] => red 
    [b] => green 
)
array_values()
作用
函数返回包含数组中所有的值的数组。
用法
array_values(array)
测试案例
$a=array("Name"=>"Peter","Age"=>"41","Country"=>"USA");
print_r(array_values($a));
结果
Array ( 
    [0] => Peter
    [1] => 41 
    [2] => USA 
)
array_walk()
作用
函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。
注释:您可以通过把用户自定义函数中的第一个参数指定为引用:&$value,来改变数组元素的值
用法
array_walk(array,myfunction,parameter...)
测试案例
function myfunction(&$value,$key)
{
$value="yellow";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction");
print_r($a);
结果
Array ( 
    [a] => yellow
    [b] => yellow 
    [c] => yellow 
)
array_walk_recursive()
作用
函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。该函数与 array_walk() 函数的不同在于可以操作更深的数组(一个数组中包含另一个数组)。
用法
array_walk_recursive(array,myfunction,parameter...)
测试案例
function myfunction($value,$key)
{
    echo "The key $key has the value $value<br>";
}
$a1=array("a"=>"red","b"=>"green");
$a2=array($a1,"1"=>"blue","2"=>"yellow");
array_walk_recursive($a2,"myfunction");
结果
The key a has the value red
The key b has the value green
The key 1 has the value blue
The key 2 has the value yellow
arsort()
作用
函数对关联数组按照键值进行降序排序
用法
arsort(array,sortingtype);
测试案例
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
arsort($age);
print_r($age);
结果
Array ( 
    [Joe] => 43
    [Ben] => 37 
    [Peter] => 35 
)
asort()
作用
函数对关联数组按照键值进升序排序。
用法
asort(array,sortingtype);
测试案例
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age);
print_r($age);
结果
Array ( 
    [Peter] => 35
    [Ben] => 37 
    [Joe] => 43 
)
compact()
作用
函数创建一个包含变量名和它们的值的数组。
注释:任何没有变量名与之对应的字符串都被略过。
用法
compact(var1,var2...)
测试案例
$firstname = "Peter";
$lastname = "Griffin";
$age = "41";
$name = array("firstname", "lastname");
$result = compact($name, "location", "age");
print_r($result);
结果
Array ( 
    [firstname] => Peter 
    [lastname] => Griffin 
    [age] => 41 
)
count()
作用
函数返回数组中元素的数目
用法
count(array,mode)
mode  0 - 默认。不计算多维数组中的所有元素。
      1 - 递归地计算数组中元素的数目(计算多维数组中的所有元素)。
测试案例
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
结果
3
current()
作用
函数返回数组中的当前元素的值
用法
current(array)
测试案例
$people = array("Peter", "Joe", "Glenn", "Cleveland");
echo current($people) . "<br>";
结果
Peter
end()
作用
函数将内部指针指向数组中的最后一个元素,并输出
用法
end(array)
测试案例
$people = array("Peter", "Joe", "Glenn", "Cleveland");
echo current($people) . "<br>";
echo end($people);
结果
Peter
Cleveland
extract()
作用
函数从数组中将变量导入到当前的符号表
用法
extract(array,extract_rules,prefix)
extract_rules    函数将检查每个键名是否为合法的变量名,同时也检查和符号表中已存在的变量名是否冲突。对不合法和冲突的键名的处理将根据此参数决定
                    EXTR_OVERWRITE - 默认。如果有冲突,则覆盖已有的变量。
                    EXTR_SKIP - 如果有冲突,不覆盖已有的变量。
                    EXTR_PREFIX_SAME - 如果有冲突,在变量名前加上前缀 prefix。
                    EXTR_PREFIX_ALL - 给所有变量名加上前缀 prefix。
                    EXTR_PREFIX_INVALID - 仅在不合法或数字变量名前加上前缀 prefix。
                    EXTR_IF_EXISTS - 仅在当前符号表中已有同名变量时,覆盖它们的值。其它的都不处理。
                    EXTR_PREFIX_IF_EXISTS - 仅在当前符号表中已有同名变量时,建立附加了前缀的变量名,其它的都不处理。
                    EXTR_REFS - 将变量作为引用提取。导入的变量仍然引用了数组参数的值。
测试案例
$a = "Original";
$my_array = array("a" => "Cat", "b" => "Dog", "c" => "Horse");
extract($my_array, EXTR_PREFIX_SAME, "dup");
echo "\$a = $a; \$b = $b; \$c = $c; \$dup_a = $dup_a";
结果
$a = Original; $b = Dog; $c = Horse; $dup_a = Cat
in_array()
作用
搜索数组中是否存在指定的值。
用法
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
测试案例
$people = array("Peter", "Joe", "Glenn", "Cleveland", 23);
if (in_array("23", $people, TRUE))
{
    echo "Match found<br>";
}
else
{
    echo "Match not found<br>";
} 
if (in_array("Glenn",$people, TRUE))
{
    echo "Match found<br>";
}
else
{
    echo "Match not found<br>";
}
if (in_array(23,$people, TRUE))
{
    echo "Match found<br>";
}
else
{
    echo "Match not found<br>";
}
结果
Match not found
Match found
Match found
key()
作用
函数从当前内部指针位置返回元素键名。。
用法
key(array)
测试案例
$people=array("Peter","Joe","Glenn","Cleveland");
echo "The key from the current position is: " . key($people);
结果
The key from the current position is: 0
krsort()
作用
函数对关联数组按照键名进行降序排序。
用法
krsort(array,sortingtype);
sortingtype     0 = SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。
                1 = SORT_NUMERIC - 把每一项作为数字来处理。
                2 = SORT_STRING - 把每一项作为字符串来处理。
                3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
                4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
                5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。
测试案例
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
krsort($age);
foreach($age as $x=>$x_value)
{
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}
结果
Key=Peter, Value=35
Key=Joe, Value=43
Key=Ben, Value=37
ksort()
作用
函数对关联数组按照键名进行升序排序
用法
ksort(array,sortingtype);
sortingtype     0 = SORT_REGULAR -默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。
                1 = SORT_NUMERIC - 把每一项作为数字来处理。
                2 = SORT_STRING - 把每一项作为字符串来处理。
                3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
                4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
                5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。
测试案例
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);
foreach($age as $x=>$x_value)
{
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}
结果
Key=Ben, Value=37
Key=Joe, Value=43
Key=Peter, Value=35
list()
作用
函数用于在一次操作中给一组变量赋值
用法
list(var1,var2...)
测试案例
$my_array = array("Dog","Cat","Horse");
list($a, , $c) = $my_array;
echo "Here I only use the $a and $c variables.";
结果
Here I only use the Dog and Horse variables.
natcasesort()
作用
用"自然排序"算法对数组进行排序。键值保留它们原始的键名
用法
natcasesort(array)
测试案例
$temp_files = array("temp15.txt","Temp10.txt",
"temp1.txt","Temp22.txt","temp2.txt");
natsort($temp_files);
echo "Natural order: ";
print_r($temp_files);
echo "<br />";
natcasesort($temp_files);
echo "Natural order case insensitve: ";
print_r($temp_files);
结果
Natural order:
Array
(
    [0] => Temp10.txt
    [1] => Temp22.txt
    [2] => temp1.txt
    [4] => temp2.txt
    [3] => temp15.txt
)
Natural order case insensitve:
Array
(
    [2] => temp1.txt
    [4] => temp2.txt
    [0] => Temp10.txt
    [3] => temp15.txt
    [1] => Temp22.txt
)
参考
本作品采用《CC 协议》,转载必须注明作者和本文链接
          
          
          
                关于 LearnKu
              
                    
                    
                    
 
推荐文章: