以array开头的php函数,php数组函数常见的那些?

php数组函数常见的那些? (array_merge、in_array的作用)

PHP中以array_开头的数组函数有哪些,并说出使用方法(至少6个)

一、数组遍历函数

// list(); //不是真正的函数,而是PHP的语言结构,用于给一组变量赋值,仅能用于索引数组

// each(); //返回数组当前元素的键值对,并将指针移动到下一个元素位置

// while(); //可配合list或each使用:while(list($key, $value) = each($arr)){each $key, $value; }

$arr = array('a','b','c');

while (list($key, $value) = each($arr)) {

echo $key, $value;

echo '
';

}

?>

二、数组内部指针控制

// current(); //读取指针位置的内容

// key(); //读取当前指针指向内容的索引值

// next(); //将数组中的内部指针指向下一单元

// prev(); //将数组内部指针倒回一位

// end(); //将数组内部指针指向最后一个元素

// reset(); //将目前指针指向第一个索引位置

$people = array("Bill", "Steve", "Mark", "David");

echo current($people) . "
"; // 当前元素是 Bill

echo next($people) . "
"; // Bill 的下一个元素是 Steve

echo current($people) . "
"; // 现在当前元素是 Steve

echo prev($people) . "
"; // Steve 的上一个元素是 Bill

echo end($people) . "
"; // 最后一个元素是 David

echo prev($people) . "
"; // David 之前的元素是 Mark

echo current($people) . "
"; // 目前的当前元素是 Mark

echo reset($people) . "
"; // 把内部指针移动到数组的首个元素,即 Bill

echo next($people) . "
"; // Bill 的下一个元素是 Steve

var_dump (each($people)); // 返回当前元素的键名和键值(目前是 Steve),并向前移动内部指针

?>

三、数组键值操作函数

$arr = array("Name"=>"Bill","Age"=>"60","Country"=>"USA",'Weight'=>"60");

var_dump($arr);

// array_values() 获得数组的值

var_dump(array_values($arr));

// array_keys() 获得数组的键名

var_dump(array_keys($arr));

// array_flip() 数组中的值与键名互换(如果有重复前面的会被后面的覆盖)

var_dump(array_flip($arr));

// array_search() 函数在数组中搜索某个键值,并返回对应的键名。

echo array_search('Bill',$arr); // 返回值为Name

// array_reverse()将数组中的元素翻转(前后顺序)

var_dump(array_reverse($arr));

// in_array() 函数搜索数组中是否存在指定的值。

// 注释:如果 search 参数是字符串且 type 参数被设置为 TRUE,则搜索区分大小写。

if (in_array("bill", $arr,true)){

echo "匹配已找到";

}else{

echo "匹配未找到";

}

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

// 键区分大小写

if (array_key_exists("Name",$arr)){

echo "键存在!";

}else{

echo "键不存在!";

}

// array_count_values() 统计数组中所有值出现的次数

var_dump(array_count_values($arr));

// array_unique() 删除数组中重复的值

var_dump(array_unique($arr));

?>

四、数组回调函数

// array_filter() 使用回调函数过滤数组中的元素,如果回调返回true则当前的元素被包含到返回数组中

function test_odd($var){

return($var & 1); // &是位运算符 3 & 1返回1,即true,所以下面的回调函数返回Array ( [3] => 3 )

}

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

print_r(array_filter($a1,"test_odd"));

// array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。

function myfunction($value,$key){

echo "The key $key has the value $value
";

}

$a=array("a"=>"red","b"=>"green","c"=>"blue");

array_walk($a,"myfunction");

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

function myfunction2($v){

return ($v*$v);

}

$a = array(1,2,3,4,5);

print_r(array_map("myfunction2",$a));

?>

五、数组的分段和填充

// array_slice($arr, 0, 3); //将数组中的一段取出,此函数忽略键名(数组的分段)

$a = array("red","green","blue","yellow","brown");

print_r(array_slice($a,2,2));

// array_splice() 函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。

// 提示:如果函数没有移除任何元素(length=0),则将从 start 参数的位置插入被替换数组(参见例子 2)。

// 注释:不保留被替换数组中的键名。

$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_chunk($arr, 3, TRUE); //将一个数组分割成多个,TRUE为保留原数组的键名(分割多个数组)

$cars = array("Volvo","BMW","Toyota","Honda","Mercedes","Opel");

print_r(array_chunk($cars,4,true));

?>

六、数组与栈,列队

$arr = array('a','b','c');

// array_push($arr, "apple", "pear") 将一个或多个元素压入数组栈的末尾(入栈),返回新数组的长度

echo array_push($arr, "apple", "pear");

var_dump($arr);

// array_pop($arr) 将数组栈的最后一个元素弹出(出栈)

echo array_pop($arr);

var_dump($arr);

// array_shift($arr); //数组中第一个元素移出并返回(长度减1,其他元素向前移动一位,数字键名改为从零计数,文字键名不变)

echo array_shift($arr);

var_dump($arr);

// array_unshift($arr,"aa",array(1,2)); //在数组的开头插入一个或多个元素,该函数返回新数组的长度

echo array_unshift($arr,"aa",array(1,2));

var_dump($arr);

?>

七、数组的排序

$arr = array('a','b','c');

// sort($arr); //由小到大,忽略键名

sort($arr);

var_dump($arr);

// rsort($arr); //由大到小,忽略键名

rsort($arr);

var_dump($arr);

// asort($arr); //由小到大,保留键名

asort($arr);

var_dump($arr);

// arsort($arr); //由大到小,保留键名

arsort($arr);

var_dump($arr);

// ksort($arr); //按照键名正序排序

ksort($arr);

var_dump($arr);

// krsort($arr); //按照键名逆序排序

krsort($arr);

var_dump($arr);

?>

八、数组的计算

$arr1 = array(1,2,3,4,5);

$arr2 = array(4,7,8,9);

// array_sum($arr); //对数组内部的所有元素做求和运算(数组元素的求和)

echo array_sum($arr1);

// array_merge($arr1, $arr2); //合并两个或多个(相同字符串键名,后面覆盖前面,相同的数字键名,后面的附加到后面)

var_dump(array_merge($arr1, $arr2));

// array_diff($arr1, $arr2); //返回差集结果数组

var_dump(array_diff($arr1, $arr2));

// array_diff_assoc($arr1, $arr2, $arr3); //返回差集结果数组,键名也做比较

var_dump(array_diff_assoc($arr1, $arr2));

// array_intersect($arr1, $arr2); //返回交集结果数组

var_dump(array_intersect($arr1, $arr2));

// array_intersect_assoc($arr1, $arr2); //返回交集结果数组,键名也做比较

var_dump(array_intersect_assoc($arr1, $arr2));

?>

九、其他的数组函数<?php

$arr = array('a'=>1,'b'=>2,'c'=>3,'d'=>2);

// array_unique($arr); //移除数组中重复的值,新的数组中会保留原始的键名

$result = array_unique($arr);

var_dump($result);

// shuffle($arr); // 将数组的顺序打乱

shuffle($arr);

var_dump($arr);

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值