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

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

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

手艺不精,要有荒唐,还请建议,笔者会勘误。

数组循环

复制代码 代码如下:

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

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

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_UPPE奇骏(转化为题写),CASE_LOWEENCORE(默许转化为题写)
$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_UPPEENVISION));//全转速为大写 只对$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()是对值实行排序

在循环里张开的是数组“写”操作,则while比foreach快:

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_UPPE逍客(转化为题写),CASE_LOWELacrosse(私下认可转化为题写)
$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_UPPEHighlander));//全转速为大写 只对$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涉及到值复制,一定会比while慢,但实际上,假若一味是在循环里进行数组的读操作,那么foreach是飞快的,那是因为PHP选取的复制机制是“引用复制,写时拷贝”,这样看来,foreach的快捷读操作就简单驾驭了。

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