array_slice($arr,1,-1);截取出来再改;
创新互联建站服务项目包括河津网站建设、河津网站制作、河津网页制作以及河津网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,河津网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到河津省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
参考例子,完整写法:
$ar = array(
array(1 = 'a', 2 = 50, 3 = 60, 4 = 'long', 5 = 'zzz', 6 = 'kkk', 7 = 'ooo'),
array(1 = 'b', 2 = 60, 3 = 70, 4 = 'king', 5 = 'lll', 6 = 'ttt', 7 = 'ppp'),
array(1 = 'c', 2 = 70, 3 = 80, 4 = 'quit', 5 = 'qqq', 6 = 'xxx', 7 = 'ccc'),
);
$kname = array('StaffId', 'Wage', 'Name', 'Work', 'Type');
function foo($v, $k, $kname) {
$v = array_combine($kname, array_slice($v, 1, -1));
}
array_walk($ar, 'foo', $kname);
print_r($ar);
Array
(
[0] = Array
(
[StaffId] = 50
[Wage] = 60
[Name] = long
[Work] = zzz
[Type] = kkk
)
[1] = Array
(
[StaffId] = 60
[Wage] = 70
[Name] = king
[Work] = lll
[Type] = ttt
)
[2] = Array
(
[StaffId] = 70
[Wage] = 80
[Name] = quit
[Work] = qqq
[Type] = xxx
)
)
PHP中不能直接修改某数组的键名,只能通过将其中的元素逐一复制到另一个新数组中,并在赋值的时候修改键名,如;
$a = array('a'='China', 'b'='America', 'c'='England');
$b[0] = $a['a'];
$b[1] = $a['b']
$b[2] = $a['c'];
$a = $b;
结果为$a内容为: array(0='China', 1='America', 2='England');
函数:array_change_key_case
(PHP 4 = 4.2.0, PHP 5, PHP 7)
array_change_key_case — 将数组中的所有键名修改为全大写或小写
1.说明
array_change_key_case ( array $array [, int $case = CASE_LOWER ] ) : array
array_change_key_case() 将 array 数组中的所有键名改为全小写或大写。本函数不改变数字索引。
2.参数
array
需要操作的数组。
case
可以在这里用两个常量,CASE_UPPER 或 CASE_LOWER(默认值)。
3.返回值
返回一个键全是小写或者全是大写的数组;如果输入值(array)不是一个数组,那么返回false
错误/异常
如果输入值(array)不是一个数组,就会抛出一个错误警告(E_WARNING)。
4.范例
Example #1 array_change_key_case()例一
1, "SecOnd" = 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?
PHP中没有直接更改键名的函数,循环更改吧 $arr = array ();foreach ( $arr as $v ) {$v-text = $v-name;unset ( $v-name );}
sort是对数组元素按升序排序的函数,既然重新排序了,数组元素的顺序当然就可能和最初不同了
升序排序就是数字按从小到大、字母按字母表顺序从前到后排序
?php
$arr = array(
'first' = '第一个',
'second' = '第二个',
'third' = array(
'thirdFirst' = '第三个的第一个',
'thirdSecond' = '第三个的第二个',
'thirdThird' = '第三个的第三个'
)
);
//递归处理
function upper_key_recursive($array, $case=CASE_LOWER, $flag_rec=false) {
$array = array_change_key_case($array, $case);
if ( $flag_rec ) {
foreach ($array as $key = $value) {
if ( is_array($value) ) {
upper_key_recursive($array[$key], $case, true);
}
}
}
}
upper_key_recursive($arr, CASE_UPPER,true);
print_r($arr);