以下是学习过程中总结的有关于PHP中常用的数组函数集合>>
<?php
/*
数组定义:
方式一: $arrData = array(x,y,.,.);
$arrData = array('曹操','刘备','zf'=>'张飞','孙权','dz'=>'董卓');
echo $arrData['zf'];
方式二:
$arrData[] = '曹操';
$arrData[2] = '刘备';
$arrData[] = '张飞';
echo $arrData[3];
方式三
$arrData = [x,y,z]
$arrData = ['曹操','刘备','zf'=>'张飞'];
echo $arrData['zf'];
二维数组
$school = array(
'php1111'=>array(x,y,z),
'php1208'=>array(x,y,z),
);
$school = array(
'php1111'=>array(12,13,14),
'php1208'=>array(15,16,17),
);
echo $school['php1208'][1];
*/
//数组处理
/*
var_dump print_r 打印数组
in_array 检查数组中是否存在某个值
array_key_exists 检查数组中是否存在某个键
array_keys 返回一个由数组键组成的数组
array_values 返回一个由数组值组成的数组
数组指针操作
key 当前指针所在位置的键名
current 当前指针所在位置的值
each 当前指针所在位置的键名与值,把指针移到下一个位置
list($a,$b) = 数组 给变量赋值
reset 重置数组指针 头部
end 重置数组指针 属部
next 数组指计下移
prev 数组指计上移
数组元素添加和删除
array_push 在数组的末尾添加元素
array_unshift 在数组的头部添加元素
array_pop 取出数组末尾的元素
array_shift 取出数组头部元素
array_pad 将数组填充到指定长度
array_unique 删除数组中重复的元素
array_splice
数组的排序
sort 升序
rsort 降序
ksort 升序
krsort 降序
其它
shuffle 打乱数组元素
range 产生一个范围数组
array_sum数组求和
array_chunk 将一维数组分为多维数组
数组合并与拆分
array_combine 用一个数组作为键,另一个数组作为值组成一个新数组
array_merge 合并一个或多个数组
array_slice 从数组中取出一段
数组过滤
array_filter
数组加工
array_map 用函数加工数组元素
array_intersect 求数组的交集
array_diff 按值求数组之间的差集
array_diff_key
array_diff_assoc
array_reduce 用函数迭代数组元素,最后返回一个值
array_reverse 颠倒数组元素的顺序
*/
$arrData = array('曹操','刘备','zf'=>'张飞','孙权','dz'=>'董卓');
var_dump($arrData);
print_r($arrData);
echo "<hr/>";
if(in_array('张飞', $arrData)){
echo "找到了";
}else{
echo "没有找到";
}
echo "<hr/>";
if(array_key_exists('f', $arrData)){
echo "找到了";
}else{
echo "没有找到";
}
echo "<hr/>";
$arrData1 = array("one"=>1,"two"=>2);
var_dump(array_keys($arrData1));
var_dump(array_values($arrData1));
echo "<hr/>";
$arrData = array('曹操','刘备','zf'=>'张飞','孙权','dz'=>'董卓');
//echo key($arrData)."--".current($arrData);
$arrDatax = each($arrData);
echo $arrDatax[0]."--".$arrDatax[1]."<hr/>";
echo key($arrData)."--".current($arrData);
echo "<hr/>";
$arrData1 = array(1,2);
list($a,$b) = $arrData1;
echo $a.$b;
echo "<hr/>";
$arrData = array('曹操','刘备','zf'=>'张飞','孙权','dz'=>'董卓');
$arrDatax = each($arrData);
echo current($arrData);
end($arrData);
echo current($arrData);
echo "<hr/>";
$arrData = array('曹操','刘备','zf'=>'张飞','孙权','dz'=>'董卓');
array_push($arrData, '吕布');
var_dump($arrData);
array_unshift($arrData, '杨修');
var_dump($arrData);
echo array_pop($arrData);
echo array_shift($arrData);
$arrData1 = array(1,2);
$arrData2 = array_pad($arrData1, 3, 'a');
var_dump($arrData2);
for($i=0;$i<count($arrData2);$i++){
echo $arrData2[$i];
}
echo "<hr/>";
$color = array('红','黄','绿','青','绿');
$newColor = array_unique($color);
var_dump($newColor);
echo "<hr/>";
$numData = array(7,3,5,1);
sort($numData);
var_dump($numData);
rsort($numData);
var_dump($numData);
echo "<hr/>";
$numData = array('a'=>'啊','b'=>'报','d'=>'的','chi'=>'吃','cha'=>'尝');
ksort($numData);
var_dump($numData);
krsort($numData);
var_dump($numData);
$numData = array('a'=>'啊','b'=>'报','d'=>'的','chi'=>'吃','cha'=>'尝');
shuffle($numData);
var_dump($numData);
echo "<hr/>";
$arrData1 = array("a","b");
$arrData2 = array(97,98);
$arrData3 = array_combine($arrData1, $arrData2);
var_dump($arrData3);
$arrData4 = array(1,2);
$arrData5 = array(3,4);
$arrData6 = array_merge($arrData4,$arrData5);
var_dump($arrData6);
$newData = array_slice($arrData6, 1,2,true);
var_dump($newData);
echo "<hr/>";
$arrData = array('曹操','刘备','zf'=>'张飞','孙权','dz'=>'董卓');
array_splice($arrData, 1,2,array('孙悟空','宋江'));
var_dump($arrData);
echo "<hr/>";
$arrDatax =range(1,100);
echo array_sum($arrDatax);
$arrDatay =range(1,10);
$arr = array_chunk($arrDatay, 2);
var_dump($arr);
$arrDatay = range(1,10);
function odd($data){
if($data%2!=0){
return true;
}
}
$arr = array_filter($arrDatay,"odd");
$arrDatay = range(1,10);
$arr = array_map("dealData", $arrDatay);
function dealData($data){
return $data*$data;
}
var_dump($arr);
echo "<hr/>";
$arrData1 = range(1,5);
$arrData2 = range(4,9);
$arrData3 = array_intersect($arrData2, $arrData1);
var_dump($arrData3);
$arrData3 = array_diff($arrData1, $arrData2);
var_dump($arrData3);
$arrData4 = array("red"=>'红色','绿色','gray'=>'灰色');
$arrData5 = array("red"=>'红色','灰色','绿色');
$arrData6 = array_diff_assoc($arrData5, $arrData4);
var_dump($arrData6);
$arrData7 = range(1,10);
echo $arrData7[array_rand($arrData7)];
echo "<hr/>";
echo array_sum($arrData7);
echo "<hr/>";
echo array_reduce($arrData7, function($total,$item){
return $total+$item;
});
echo "<hr/>";
for($total=0,$i=0;$i<count($arrData7);$i++){
$total+=$arrData7[$i];
}
echo $total;
$strData = ["how","are","you"];
$data = array_reverse($strData);
var_dump($data);