PHP 第一周函数学习记录

array_change_key_case()

作用

函数将数组的所有的键都转换为大写字母或小写字母

用法

array_change_key_case(array,case)

测试案例

$testArr = array('a'=>1, 'B'=>2);
// CASE_UPPER 键转大写
print_r(array_change_key_case($testArr,CASE_UPPER));
// CASE_LOWER 键转小写 默认值
print_r(array_change_key_case($testArr,CASE_LOWER));

结果

Array
(
    [A] => 1
    [B] => 2
)
Array
(
    [a] => 1
    [b] => 2
)

array_chunk()

作用

函数把一个数组分割为新的数组块。

用法

array_chunk(array,size,preserve_keys)

size 规定每个新数组块包含多少个元素。
preserve_keys  true - 保留原始数组中的键名。
               false - 默认。每个新数组块使用从零开始的索引。

测试案例

$testArr = array('a'=>'hhhh', 'B'=>'yyyyy');
// 按每块1个元素分块 保留键
print_r(array_chunk($testArr,1, true));
// 按每块1个元素分块 不保留键
print_r(array_chunk($testArr,1, false));

结果

Array
(
    [0] => Array
        (
            [a] => hhhh
        )

    [1] => Array
        (
            [B] => yyyyy
        )

)
Array
(
    [0] => Array
        (
            [0] => hhhh
        )

    [1] => Array
        (
            [0] => yyyyy
        )

)

array_column()

作用

返回输入数组中某个单一列的值

用法

array_column(array, column_key, index_key);
column_key 需要返回值的列
index_key 返回数组的索引/键的列

测试案例

$a = array(
  array(
    'id' => 5698,
    'first_name' => 'Peter',
    'last_name' => 'Griffin',
  ),
  array(
    'id' => 4767,
    'first_name' => 'Ben',
    'last_name' => 'Smith',
  ),
  array(
    'id' => 3809,
    'first_name' => 'Joe',
    'last_name' => 'Doe',
  )
);
$last_names = array_column($a, 'last_name', 'id');
print_r($last_names);

结果

Array
(
  [5698] => Griffin
  [4767] => Smith
  [3809] => Doe
)

array_combine()

作用

函数通过合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组的元素为键值

用法

array_combine(keys,values);

测试案例

$fname = array("Peter", "Ben", "Joe");
$age = array("35", "37", "43");

$c = array_combine($fname, $age);
print_r($c);

结果

Array ( 
    [Peter] => 35 
    [Ben] => 37
    [Joe] => 43 
)

array_count_values()

作用

函数用于统计数组中所有值出现的次数。

用法

array_count_values(array)

测试案例

$a = array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));

结果

Array (
    [A] => 2 
    [Cat] => 1 
    [Dog] => 2 
)

array_diff()

作用

函数用于比较两个(或更多个)数组的值,并返回差集

用法

array_diff(array1,array2,array3...);

测试案例

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"black","g"=>"purple");
$a3=array("a"=>"red","b"=>"black","h"=>"yellow");

$result=array_diff($a1,$a2,$a3);
print_r($result);

结果

Array ( 
    [b] => green 
    [c] => blue
)

array_diff_assoc()

作用

array_diff_assoc() 函数用于比较两个(或更多个)数组的键名和键值 ,并返回差集。

用法

array_diff_assoc(array1,array2,array3...);

测试案例

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","f"=>"green","g"=>"blue");
$a3=array("h"=>"red","b"=>"green","g"=>"blue");

$result=array_diff_assoc($a1,$a2,$a3);
print_r($result);

结果

Array ( 
    [c] => blue 
    [d] => yellow 
)

array_diff_key()

作用

函数用于比较两个(或更多个)数组的键名 ,并返回差集

用法

array_diff_key(array1,array2,array3...);

测试案例

$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","c"=>"blue","d"=>"pink");

$result=array_diff_key($a1,$a2);
print_r($result);

结果

Array ( [b] => green )

array_diff_uassoc()

作用

比较两个数组的键名和键值(使用用户自定义函数比较键名),并返回差集

用法

array_diff_uassoc(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("d"=>"red","b"=>"green","e"=>"blue");

$result=array_diff_uassoc($a1,$a2,"myfunction");
print_r($result);

结果

Array ( [a] => red [c] => blue )

array_diff_ukey()

作用

比较两个数组的键名(使用用户自定义函数比较键名),并返回差集

用法

array_diff_ukey(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_diff_ukey($a1,$a2,"myfunction");
print_r($result);

结果

Array ( [c] => blue )

array_fill()

作用

用给定的键值填充数组

用法

array_fill(index,number,value);
index  数组的起始索引
number 规定填充的元素的数量,其值必须大于 0
value  规定用于填充数组的键值

测试案例

$a1=array_fill(3,4,"blue");
$b1=array_fill(0,1,"red");
print_r($a1);
echo "<br>";
print_r($b1);

结果

Array ( 
    [3] => blue
    [4] => blue 
    [5] => blue
    [6] => blue 
)
Array ( 
    [0] => red 
)

array_fill_keys()

作用

给定的指定键名的键值填充数组

用法

array_fill_keys(keys,value);

测试案例

$keys=array("a","b","c","d");
$a1=array_fill_keys($keys,"blue");
print_r($a1);

结果

Array ( 
    [a] => blue 
    [b] => blue 
    [c] => blue
    [d] => blue
)

array_filter()

作用

用回调函数过滤数组中的元素

用法

array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )

测试案例

function test_odd($var)
{
    return($var & 1);
}

$a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));

结果

Array ( 
    [3] => 3 
)

array_flip()

作用

用于反转/交换数组中的键名和对应关联的键值

用法

array_flip(array);

测试案例

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$result=array_flip($a1);
print_r($result);

结果

Array ( 
    [red] => a 
    [green] => b 
    [blue] => c
    [yellow] => d
)

array_intersect()

作用

取数组中所有值的交集

用法

array_intersect(array1,array2,array3...);

测试案例

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");

$result=array_intersect($a1,$a2);
print_r($result);

结果

Array ( 
    [a] => red 
    [b] => green
    [c] => blue 
)

array_intersect_assoc()

作用

用于比较两个(或更多个)数组的键名和键值,并返回交集

用法

array_intersect_assoc(array1,array2,array3...)

测试案例

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","b"=>"green","c"=>"blue");

$result=array_intersect_assoc($a1,$a2);
print_r($result);

结果

Array ( 
    [a] => red
    [b] => green
    [c] => blue 
)

array_intersect_key()

作用

用于比较两个(或更多个)数组的键名 ,并返回交集

用法

array_intersect_key(array1,array2,array3...)

测试案例

$a1=array("red","green","blue","yellow");
$a2=array("red","green","blue");

$result=array_intersect_key($a1,$a2);
print_r($result);

结果

Array ( 
    [0] => red
    [1] => green 
    [2] => blue 
)

array_intersect_uassoc()

作用

用于比较两个(或更多个)数组的键名和键值 ,并返回交集。
注释:该函数使用用户自定义函数比较键名!

用法

array_intersect_uassoc(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("d"=>"red","b"=>"green","e"=>"blue");

$result=array_intersect_uassoc($a1,$a2,"myfunction");
print_r($result);

结果

Array ( [b] => green )

array_intersect_ukey()

作用

用于比较两个(或更多个)数组的键名 ,并返回交集。 使用用户自定义函数比较键名

用法

array_intersect_ukey(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"=>"black","b"=>"yellow","d"=>"brown");
$a3=array("e"=>"purple","f"=>"white","a"=>"gold");

$result=array_intersect_ukey($a1,$a2,$a3,"myfunction");
print_r($result);

结果

Array ( [a] => red )

array_key_exists()

作用

函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false

用法

array_key_exists(key,array)

测试案例

$a=array("Volvo"=>"XC90","BMW"=>"X5");
if (array_key_exists("Toyota",$a))
{
    echo "Key exists!";
}
else
{
    echo "Key does not exist!";
}

结果

Key does not exist!

array_keys()

作用

函数返回包含数组中所有键名的一个新数组。

用法

array_keys(array,value,strict)

测试案例

$a=array(10,20,30,"10");
print_r(array_keys($a,"10",true));

结果

Array ( [0] => 3 )

array_map()

作用

函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组

用法

array_map(myfunction,array1,array2,array3...)

测试案例

function myfunction($v)
{
return($v*$v);
}

$a=array(1,2,3,4,5);
print_r(array_map("myfunction",$a));

结果

Array ( 
    [0] => 1
    [1] => 4
    [2] => 9 
    [3] => 16
    [4] => 25 
)

array_merge()

作用

用于把一个或多个数组合并为一个数组

用法

array_merge(array1,array2,array3...)

测试案例

$a=array(3=>"red",4=>"green");
print_r(array_merge($a));

$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge($a1,$a2));

结果

Array ( 
    [0] => red
    [1] => green 
)

Array
(
    [a] => red
    [b] => yellow
    [c] => blue
)

array_merge_recursive()

作用

把一个或多个数组合并为一个数组。多个相同键名的值递归组成一个数组

用法

array_merge_recursive(array1,array2,array3...)

测试案例

$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge_recursive($a1,$a2));

结果

Array ( 
    [a] => red 
    [b] => Array ( 
                [0] => green
                [1] => yellow 
            )
    [c] => blue 
)

array_multisort()

作用

返回一个排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。

用法

array_multisort(array1,sorting order,sorting type,array2,array3...)

sorting order   SORT_ASC - 默认。按升序排列 (A-Z)
                SORT_DESC - 按降序排列 (Z-A)。

sorting type    SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)
                SORT_NUMERIC - 把每一项作为数字来处理。
                SORT_STRING - 把每一项作为字符串来处理。
                SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
                SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
                SORT_FLAG_CASE - 可以结合(按位或)SORT_STRINGSORT_NATURAL 对字符串进行排序,不区分大小写。

测试案例

$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2,SORT_ASC,SORT_NATURAL);
print_r($a1);
print_r($a2);

结果

Array
(
    [0] => Dog
    [1] => Cat
)
Array
(
    [0] => Fido
    [1] => Missy
)
参考

《PHP 5 Array 函数 | 菜鸟教程》

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1
itdream

:+1:不错

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!