php如何修改二维数组子数组的键值
2016-05-19 13:50
796 查看
定义和用法
array_slice() 函数在数组中根据条件取出一段值,并返回。注释:如果数组有字符串键,所返回的数组将保留键名。
语法
array_slice(array,offset,length,preserve)
参数 | 描述 |
---|---|
array | 必需。规定输入的数组。 |
offset | 必需。数值。规定取出元素的开始位置。 如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值。 |
length | 可选。数值。规定被返回数组的长度。 如果是负数,则从后向前,选取该值绝对值数目的元素。如果未设置该值,则返回所有元素。 |
preserve | 可选。可能的值: true - 保留键 false - 默认 - 重置键 |
例子 1
<?php $a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); print_r(array_slice($a,1,2)); ?>
输出:
Array
( [0] => Cat [1] => Horse )
具体实现如下:
参考例子,完整写法:
$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
)
)
相关文章推荐
- FileOutputStream和FileInputStream实现文件的存储操作
- thinkphp3.x中cookie方法的用法分析
- thinkphp3.x中display方法及show方法的用法实例
- yii2安装过程记录
- thinkphp3.x连接mysql数据库的方法(具体操作步骤)
- php 字符串函数
- yii 如何使用 CWebLogRoute 记录和调试变量
- thinkphp3.x自定义Action、Model及View的简单实现方法
- thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
- 关于php跨域cookie共享使用方法
- mac上启用tftp服务器
- yii2 rbac权限管理学习笔记
- [PPTP] PPTP Server On Ubuntu With Double Public IP
- SCCM TP4创建边界和边界组
- 图解Zend studio破解方法及步骤
- PHP: Local 和 Global 作用域
- yii 获取当前模块名、控制器名 、动作名
- PHP CI框架批量上传图片
- PHP 修改某个文件夹里面所有的子文件夹的名称
- phpmyadmin4.4多ip选择