澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

一些php数组的学习入门笔记,array的学习笔记

本领不精,要有不当,还请提出,作者会勘误。

 代码如下

复制代码 代码如下:

header('Content-Type: text/html; charset=utf-8');
echo '<pre>';
function var_array($array)
{
echo '<pre>';
var_dump($array);
echo '</pre>';
}
function printr($array)
{
echo '<pre>';
print_r($array);
echo '</pre>';
}
function getArr($sNum, $eNum=1, $step=1)
{
$arr = range($sNum, $eNum, $step);
$reArr = array();
foreach($arr as $v)
{
$reArr[$v] = rand(0,10);
}
unset($arr);
return $reArr;
}
/**
* array数组练习
*/
//---------------------------------------------
//array_change_key_case() 更改数组索引的大小写字母,由最后八个参数决定:CASE_UPPEEscort(转化为题写),CASE_LOWELAND(默认转化为题写)
$expArr = array(
'fiRsT' => '1',
'sEcoNd' => '2',
'ThIrd' => array(
'HuiMa' => '3',
'nengZhuaNma' => '5',
)
);
printr(array_change_key_case($expArr));//全转速为题写
printr(array_change_key_case($expArr['ThIrd'], CASE_UPPE昂科拉));//全转速为大写 只对$expArr数组里的有个别index键转化
//总括:该函数只影响数组的一层。 并且不会对原数组产生震慑
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_chunk($array, $size, false)
//将三个数组分割成贰个多维数组,size决定以此数组每$size个变为叁个多维数组, true/false决定新数组的键值是还是不是沿用原数组的键
$expArr = array('4','2','6','d','2');
printr(array_chunk($expArr, 3));
//计算:该函数只影响数组的一层。 何况不会对原数组发生潜濡默化
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_combine($keyArr, $valArr)
//将四个数组组合成三个数组,$keyArr做为键,$valArr做为值
$expKey = array('g', 'd', 't');
$expVal = array('5', '8', '7');
printr(array_combine($expKey, $expVal));
//该函数同样只影响数组的一层,並且再次回到贰个新数组
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_count_values($array)
//计算$array数组中各种value出现的次数,并以他个value做为新数组的键,出现次数做为value
$array = array('v1'=>'265', 'v2'=>'352', 'v3'=>'265', 'v4'=>'349', 'v5'=>'265');
printr(array_count_values($array));
//总计:该函数只可以用于总结值为 string和integer类型的value,别的项目会发warning!
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_diff($array1, $array2...)
//以$array1为根基数组,他的值不出以后任何任何参数数组里的值组成三个新数组
$arr1 = array('v4'=>458, 'gren', 'b5', 'a5');
$arr2 = array('v4'=>598, 'red', 'a5', 'c4');
printr(array_diff($arr1, $arr2));
//总计:拿贰个数组到一批数组中寻找这么些数组中从不的值,总计、数据比较应该会用到
//array_intersect($array, $parArr, ....)
//该函数同array_diff在效果与利益上亦然,只是array_intersect()重返的是共有的数目,array_diff则是只设有于$array中的数据
//
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_diff_assoc($array1, $array2...)
//同 array_diff()函数,不过那一个也会拿key实行比较
//
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_diff_key
//同array_diff()函数
//只是以此只拿$array1的key去与别的参数数组举办找寻
//
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_diff_uassoc($arr1, $parArr...., 回调函数)
//功能同array_diff(),可是急需用户定义一个回调函数
//未驾驭该函数的机能
//
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_diff_ukey($arr1, $parArr...., 回调函数)
//功能同array_diff_key(),只然而和array_diff_uassoc一样,须求贰个回调函数
//
//
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_fill($startInt, $numInt, $value)
//把$value填充到贰个新数组,新数组的索引早先地方上马由$startInt决定,$numInt则决定那几个数组生成多少个目录。
//tip:除了$value,$startInt,$numInt必须为数字,不然报错
printr(array_fill(2, 5, 'value'));
//总计:还没悟出干啥用
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_fill_keys($arrKeys, $value);
//功能同array_fill()函数。只可是这里用$arrKeys【叁个数组的值】来做为新数组的键
$arrKeys = array('45', 'd', 'b', 'c');
printr(array_fill_keys($arrKeys, 'value'));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_filter($arr, callBack回调函数)
//过滤函数,通过对$arr数组的值的决断,假如 callBack回调函数 重回true,则将日前键以及值增多到新的数组里
//TIP:回调函数能够写个法规,来过滤掉里边不切合法规的数组键
function cb($val)
{
return $val%2 == 0;
}
$array = array('k1'=>3, 'k2'=>5,'k4'=>54654, 'k5'=>8794, 8945, 32549564);
printr($array, 'cb');
//tip:回调函数名建议用引号引起来
//总计:该方法能够做成一个数额过滤的三合一
unset($array);
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_flip($array)
//将数组中key和value的关系转移。只支持string和integr类型的键,其余项目将会发出警示,况兼有题指标键值不更动。在转移的新的数组,假诺键同样,他会不停的替换掉现存键的值
$arr = array('k1'=>'v1', 'k2'=>'v2', 'k3'=>'v4', 'k4'=>'v4', 'k5'=>'v5');
printr(array_flip($arr));
unset($arr);
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_key_exists($key, $array)
//推断几个键是还是不是留存于当下数组中,重返bool。也可用来决断目的
$array = array('cb' => 234, 'dv'=>45, 'one'=>897);
if(array_key_exists('one', $array))
echo '存在那个数组中';
else
echo '不存在';
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_keys($array, $selSearch_value)
//重回数组中的键名并整合八个新数组,假设内定了$selSearch_value值,那么将赶回数组里等于$selSearch_value的键名
$array = getArr(4, 10);
printr(array_keys($array));
printr(array_keys($array, '5'));//带值的查找
unset($array);
//总计:那些也可用以数据总括,数据相比较验证
echo '<br/><hr/><br/>';
//---------------------------------------------
echo 'array_map:';
//array_map('callBack', $array,...)
//把传播的函数,重返经callback回调函数的重返值
//回调函数也能够回去三个数组。并且,回调函数只接受一个数组里的值传入
function mapCb($n)
{
return $n*$n*$n;
}
$array = getArr(4, 15);
printr(array_map('mapCb', $array));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_merge($array,$array2...)
//将多个数组组成二个数组,并对数字索引进行双重编排。
$arr1 = getArr(1, 5);
$arr2 = getArr(5, 10);
printr(array_merge($arr1, $arr2));
//总括:将多少个数组组成二个新数组。
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_merge_recursive($arr1, $arr2....)
//成效同上。但函数会将键名一样的值组成一个新数组,实际不是替换掉
//但若是要用,依据实况使用
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_multisort()
//多维数组排序,近年来只兑现了二维数组排序。三个维度估量不可能排
//该函数会一贯改动员数组顺序
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_pad($arr, $size, $value)
//对数组举行填充,假设当前$arr的尺寸小于$size,那么,就用$value来填充$arr数组,直至$arr的长短与$size相等
//假使$arr的长度当先或等于$size,那么该函数将不会对$arr实行填空。 $size小于0则填充在$arr的左边,大于0则侧面
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_pop($array)
//去掉数组的末梢三个键。
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_product($arr)
//重返二个数组中兼有数值的乘积。
//tip:该函数不可能管理非数值类型的数额。假诺传入数组里包涵‘a、b之类字符串',那么php会报错
$arr = array(4,5,5);
echo array_product($arr);
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_push($arr, $keyArr)
//将$keyArr加多到$arr数组的尾声,以key/栈的款型丰硕。
//与array_merge()、array_merge_recursive()两函数的分别:
// arrap_push()是将二个$keyArr加多到$arr里边,而其他三个函数则是将四个函数连接成二个函数
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_rand($arr, $num=1)
//收取当前数组里的键,抽出多少个由$num决定,默感觉1
//就算$num为1,那么它将回来多个string
//如若$num>1 && $num<count($arr) 函数重回二个数组
//否则php报错
$arr = getArr(5, 15);
printr(array_rand($arr, 4));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_reduce()
//和array_map()类似,通过回调函数,对数组里的数值举行管理,并接受重返值
//该函数重回一个字符串。他会将数组里有所的值实行总括,并赶回总计后的值,而array_map则是对各类键下的值进行总结,并回到array
//不是太明白,实例看手册
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_replace($array, $parArr,...)
//用参数数组里键的值替换掉$array里同样键的值
//如若$array数组里在后面包车型地铁参数数组里不曾找到相应的键,那么加多到新数组前边
/*$arr = getArr(4, 10);
$arr2 = getArr(6, 15);
printr($arr);
printr($arr2);*/
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));
printr(array_replace($base, $replacements));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_replace_recursive() 递归替换
//功能同array_replace()一样。分歧在于:array_replace_recursive()能够对多维数组操作,况且不改造$array的构造,而array_replace()他最终会重临三个一维数组
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));
printr(array_replace_recursive($base, $replacements));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_reverse($arr)
//将数组里的键按相反顺序排列
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_search($value, $array)
//在$array数组中去找值为$value的键名
//未有找到则赶回false
//假设$array数组鸿有多个$value,那么只回去第一个分外的键
//该函数与array_keys()类似,分裂在于重临值上:array_search()只会回来一个合营的键名,而array_keys()则能够再次回到一个由具有相配的键组成的一维数组
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_shift($arr)
//去掉当前$arr数组里的第五个键,並且对前边的数字索引进行重复编辑(但不转移原本顺序),非数字索引不改变。
//该函数与array_pop()类似,区别在于array_pop()去掉是最后八个,array_shift()去掉脑袋
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_slice($arr, $offset, $length=0, false) 数组截取
//重回当前$arr数组里从$offset处开头偏移,共$length个要素/键,并结合八个新数组再次回到
//假如$offset只怕$length为负数,那么正是向相反方向进行偏移
//感觉和substring()字符串截取类似
//直接用php手册上的实例了
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // returns "c", "d", and "e"
$output = array_slice($input, -2, 1); // returns "d"
$output = array_slice($input, 0, 3); // returns "a", "b", and "c"
// note the differences in the array keys
printr(array_slice($input, 2, -1));
printr(array_slice($input, 2, -1, true));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_spslice($arr, $offset, $length)
//同array_slice()函数正好相反,该函数是去掉放在$offset和$length之间这个成分
unset($arr);
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_sum($arr)
//将$arr数组里的全体值进行求和增多,如若是非数值类型的则尝试实行更动,可是好多改换后为0
//该函数只会潜濡默化一层数组,和array_product()类似
$arr = array(
45,56, 'a', 'b'=>getArr(1, 2),
);
printr($arr);
echo 'array_sum($arr)',array_sum($arr);
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_values($arr)
//将$arr数组里的值提抽取来,组成新的数组
$arr = array(
'k1'=>45,'k2'=>56, 'k3'=>'a', 'b'=>getArr(1, 2),
);
printr(array_values($arr));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_unique($arr) 对数组进行排重
//对$arr数组举行排重,将另行的值进行过滤。四个同样的值将只保留第三个
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_walk($arr, callback[回调函数], $sel_perfix='')
//对当前数组下的种种键进送到 callback函数里举办管理
//若是加上$sel_perfix参数,回调函数也要八个参数来收纳,否则报错
//该函数只影响一层
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}
printr(array_walk($fruits, 'test_print'));
array_walk($fruits, 'test_alter', 'fruit');
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_walk_recursive()
//功用类似于array_alk();可是他会递归$arr的每一层数组,重返的数组不会变动原有数组的布局
echo '<br/><hr/><br/>';
//---------------------------------------------
//arsort($arr)
//遵照数组键名排序数组,能够对字母举办排序。假设排序失利,将回到null
echo '<br/><hr/><br/>';
//---------------------------------------------
//asort()
//成效看似于arsort(),差距在于:asort()是对值进行排序

header('Content-Type: text/html; charset=utf-8');
echo '<pre>';
function var_array($array)
{
echo '<pre>';
var_dump($array);
echo '</pre>';
}
function printr($array)
{
echo '<pre>';
print_r($array);
echo '</pre>';
}
function getArr($sNum, $eNum=1, $step=1)
{
$arr = range($sNum, $eNum, $step);
$reArr = array();
foreach($arr as $v)
{
$reArr[$v] = rand(0,10);
}
unset($arr);
return $reArr;
}
/**
* array数组练习
*/
//---------------------------------------------
//array_change_key_case() 退换数组索引的轻重写字母,由最后一个参数决定:CASE_UPPECRUISER(转化为题写),CASE_LOWEPAJERO(默认转化为题写)
$expArr = array(
'fiRsT' => '1',
'sEcoNd' => '2',
'ThIrd' => array(
'HuiMa' => '3',
'nengZhuaNma' => '5',
)
);
printr(array_change_key_case($expArr));//全转速为题写
printr(array_change_key_case($expArr['ThIrd'], CASE_UPPE昂科拉));//全转速为大写 只对$expArr数组里的某个index键转化
//总括:该函数只影响数组的一层。 而且不会对原数组发生震慑
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_chunk($array, $size, false)
//将三个数组分割成三个多维数组,size决定以此数组每$size个变为一个多维数组, true/false决定新数组的键值是不是沿用原数组的键
$expArr = array('4','2','6','d','2');
printr(array_chunk($expArr, 3));
//总计:该函数只影响数组的一层。 而且不会对原数组发生潜濡默化
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_combine($keyArr, $valArr)
//将五个数组组合成一个数组,$keyArr做为键,$valArr做为值
$expKey = array('g', 'd', 't');
$expVal = array('5', '8', '7');
printr(array_combine($expKey, $expVal));
//该函数同样只影响数组的一层,何况重返一个新数组
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_count_values($array)
//计算$array数组中种种value出现的次数,并以他个value做为新数组的键,出现次数做为value
$array = array('v1'=>'265', 'v2'=>'352', 'v3'=>'265', 'v4'=>'349', 'v5'=>'265');
printr(array_count_values($array));
//计算:该函数只可以用于总括值为 string和integer类型的value,其余项目会发warning!
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_diff($array1, $array2...)
//以$array1为根基数组,他的值不出新在其他任何参数数组里的值组成二个新数组
$arr1 = array('v4'=>458, 'gren', 'b5', 'a5');
$arr2 = array('v4'=>598, 'red', 'a5', 'c4');
printr(array_diff($arr1, $arr2));
//总括:拿二个数组到一群数组中搜索这几个数组中未有的值,总括、数据相比较应该会用到
//array_intersect($array, $parArr, ....)
//该函数同array_diff在功用上平等,只是array_intersect()重回的是集体全体的数目,array_diff则是只存在于$array中的数据
//
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_diff_assoc($array1, $array2...)
//同 array_diff()函数,但是那一个也会拿key实行相比较
//
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_diff_key
//同array_diff()函数
//只是以此只拿$array1的key去与另外参数数组进行查找
//
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_diff_uassoc($arr1, $parArr...., 回调函数)
//功能同array_diff(),可是急需用户定义一个回调函数
//未驾驭该函数的作用
//
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_diff_ukey($arr1, $parArr...., 回调函数)
//功能同array_diff_key(),只不过和array_diff_uassoc一样,需求三个回调函数
//
//
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_fill($startInt, $numInt, $value)
//把$value填充到叁个新数组,新数组的索引开首地点上马由$startInt决定,$numInt则调节这几个数组生成多少个目录。
//tip:除了$value,$startInt,$numInt必须为数字,不然报错
printr(array_fill(2, 5, 'value'));
//计算:还没悟出干啥用
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_fill_keys($arrKeys, $value);
//功能同array_fill()函数。只可是这里用$arrKeys【二个数组的值】来做为新数组的键
$arrKeys = array('45', 'd', 'b', 'c');
printr(array_fill_keys($arrKeys, 'value'));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_filter($arr, callBack回调函数)
//过滤函数,通过对$arr数组的值的剖断,假使 callBack回调函数 重返true,则将眼下键以及值增添到新的数组里
//TIP:回调函数能够写个法规,来过滤掉里边不切合法则的数组键
function cb($val)
{
return $val%2 == 0;
}
$array = array('k1'=>3, 'k2'=>5,'k4'=>54654, 'k5'=>8794, 8945, 32549564);
printr($array, 'cb');
//tip:回调函数名提出用引号引起来
//总计:该格局能够做成三个数额过滤的购并
unset($array);
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_flip($array)
//将数组中key和value的涉及转移。只帮助string和integr类型的键,其他门类将会时有发生警示,而且有题指标键值不调换。在转移的新的数组,若是键同样,他会不停的更迭掉现存键的值
$arr = array('k1'=>'v1', 'k2'=>'v2', 'k3'=>'v4', 'k4'=>'v4', 'k5'=>'v5');
printr(array_flip($arr));
unset($arr);
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_key_exists($key, $array)
//判定多少个键是不是留存于当下数组中,重返bool。也可用来剖断目的
$array = array('cb' => 234, 'dv'=>45, 'one'=>897);
if(array_key_exists('one', $array))
echo '存在这些数组中';
else
echo '不存在';
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_keys($array, $selSearch_value)
//再次回到数组中的键名并结成三个新数组,假诺内定了$selSearch_value值,那么将再次来到数组里等于$selSearch_value的键名
$array = getArr(4, 10);
printr(array_keys($array));
printr(array_keys($array, '5'));//带值的查找
unset($array);
//计算:这几个也可用于数据总计,数据比较验证
echo '<br/><hr/><br/>';
//---------------------------------------------
echo 'array_map:';
//array_map('callBack', $array,...)
//把传播的函数,重临经callback回调函数的再次回到值
//回调函数也能够再次回到贰个数组。并且,回调函数只接受一个数组里的值传入
function mapCb($n)
{
return $n*$n*$n;
}
$array = getArr(4, 15);
printr(array_map('mapCb', $array));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_merge($array,$array2...)
//将多少个数组组成四个数组,并对数字索引实行重复编辑。
$arr1 = getArr(1, 5);
$arr2 = getArr(5, 10);
printr(array_merge($arr1, $arr2));
//计算:将两个数组组成叁个新数组。
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_merge_recursive($arr1, $arr2....)
//效率同上。但函数会将键名一样的值组成三个新数组,并非替换掉
//但假诺要用,根据实况选择
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_multisort()
//多维数组排序,目前只兑现了二维数组排序。三个维度估摸无法排
//该函数会直接改换员数组顺序
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_pad($arr, $size, $value)
//对数组实行填充,假诺当前$arr的长短小于$size,那么,就用$value来填充$arr数组,直至$arr的长度与$size相等
//倘诺$arr的尺寸超越或等于$size,那么该函数将不会对$arr举行填写。 $size小于0则填充在$arr的侧面,大于0则左边
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_pop($array)
//去掉数组的末尾一个键。
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_product($arr)
//重回多少个数组中具有数值的乘积。
//tip:该函数不能够管理非数值类型的数额。即使传入数组里含有‘a、b之类字符串',那么php会报错
$arr = array(4,5,5);
echo array_product($arr);
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_push($arr, $keyArr)
//将$keyArr加多到$arr数组的结尾,以key/栈的花样丰盛。
//与array_merge()、array_merge_recursive()两函数的分裂:
// arrap_push()是将二个$keyArr增多到$arr里边,而别的四个函数则是将四个函数连接成三个函数
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_rand($arr, $num=1)
//抽取当前数组里的键,抽出多少个由$num决定,默感到1
//假如$num为1,那么它将再次回到多个string
//假若$num>1 && $num<count($arr) 函数再次回到三个数组
//否则php报错
$arr = getArr(5, 15);
printr(array_rand($arr, 4));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_reduce()
//和array_map()类似,通过回调函数,对数组里的数值实行管理,并收受再次回到值
//该函数重回三个字符串。他会将数组里富有的值举办估测计算,并重返总括后的值,而array_map则是对各个键下的值实行估测计算,并重临array
//不是太精晓,实例看手册
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_replace($array, $parArr,...)
//用参数数组里键的值替换掉$array里一样键的值
//要是$array数组里在末端的参数数组里未有找到呼应的键,那么增添到新数组前面
/*$arr = getArr(4, 10);
$arr2 = getArr(6, 15);
printr($arr);
printr($arr2);*/
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));
printr(array_replace($base, $replacements));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_replace_recursive() 递归替换
//功能同array_replace()同样。差异在于:array_replace_recursive()能够对多维数组操作,何况不改换$array的结构,而array_replace()他最后会回到三个一维数组
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));
printr(array_replace_recursive($base, $replacements));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_reverse($arr)
//将数组里的键按相反顺序排列
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_search($value, $array)
//在$array数组中去找值为$value的键名
//未有找到则赶回false
//就算$array数组鸿有多少个$value,那么只回去第一个门户分外的键
//该函数与array_keys()类似,不相同在于重返值上:array_search()只会再次来到一个合作的键名,而array_keys()则足以回到八个由具备相配的键组成的一维数组
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_shift($arr)
//去掉当前$arr数组里的首先个键,何况对后边的数字索引实行重新编写(但不改变原有顺序),非数字索引不变。
//该函数与array_pop()类似,差别在于array_pop()去掉是最终五个,array_shift()去掉脑袋
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_slice($arr, $offset, $length=0, false) 数组截取
//重返当前$arr数组里从$offset处初始偏移,共$length个成分/键,并整合四个新数组再次来到
//借使$offset或许$length为负数,那么便是向相反方向实行偏移
//感到和substring()字符串截取类似
//直接用php手册上的实例了
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // returns "c", "d", and "e"
$output = array_slice($input, -2, 1); // returns "d"
$output = array_slice($input, 0, 3); // returns "a", "b", and "c"
// note the differences in the array keys
printr(array_slice($input, 2, -1));
printr(array_slice($input, 2, -1, true));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_spslice($arr, $offset, $length)
//同array_slice()函数正好相反,该函数是去掉放在$offset和$length之间那些要素
unset($arr);
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_sum($arr)
//将$arr数组里的全部值实行求和充裕,借使是非数值类型的则尝试举行转移,然而超越三分之二转移后为0
//该函数只会影响一层数组,和array_product()类似
$arr = array(
45,56, 'a', 'b'=>getArr(1, 2),
);
printr($arr);
echo 'array_sum($arr)',array_sum($arr);
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_values($arr)
//将$arr数组里的值提抽出来,组成新的数组
$arr = array(
'k1'=>45,'k2'=>56, 'k3'=>'a', 'b'=>getArr(1, 2),
);
printr(array_values($arr));
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_unique($arr) 对数组实行排重
//对$arr数组进行排重,将再也的值进行过滤。五个一律的值将只保留第三个
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_walk($arr, callback[回调函数], $sel_perfix='')
//对脚下数组下的各种键进送到 callback函数里张开管理
//要是加上$sel_perfix参数,回调函数也要多少个参数来选用,不然报错
//该函数只影响一层
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}
printr(array_walk($fruits, 'test_print'));
array_walk($fruits, 'test_alter', 'fruit');
echo '<br/><hr/><br/>';
//---------------------------------------------
//array_walk_recursive()
//效率周围于array_alk();不过他会递归$arr的每一层数组,重返的数组不会变动原有数组的布局
echo '<br/><hr/><br/>';
//---------------------------------------------
//arsort($arr)
//依据数组键名排序数组,能够对字母举行排序。即使排序失利,将回到null
echo '<br/><hr/><br/>';
//---------------------------------------------
//asort()
//功效看似于arsort(),差距在于:asort()是对值举行排序

数组循环

 代码如下

foreach ($array as $value) {  
    echo $value;  
}    
while (list($key) = each($array)) {  
    echo $array[$key];  

foreach ($array as $value) {
    echo $value;
}
while (list($key) = each($array)) {
    echo $array[$key];
}

本文由澳门皇冠金沙网站发布于编辑程序,转载请注明出处:一些php数组的学习入门笔记,array的学习笔记

相关阅读