php 学习笔记 数组2
10、切割数组
array_slice(array, offset, length);返回一个由原始数组中的连续元素组成的新数组,参数1为原始数组,参数2为要复制的起始位置, 参数3要复制的个数;新数组的键值从0开始
$people = array("tom", "dick", "jo", "jim", "alic");
$middle = array_slice($people, 2, 2); //$middle是array("jo", "jim");
一般来说,只有在索引数组上使用array_slice()才有意义
11、数组分块
把数组分为小数组或固定大小的数组,可以使用array_chunk()函数;
$chunks = array_chunk(array, size [, preserve_keys]);
$nums = range(1, 7);
$rows = array_chunk($nums, 5);
print_r($rows); //Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) [1] => Array ( [0] => 6 [1] => 7 ) )
12、键(Key)和值(Value)
array_keys() 函数根据内部顺序返回一个仅由数组中的键组成的数组
array_values() 函数根据内部顺序返回一个仅由数组中的值组成的数组(较少使用)
13、在数组中删除和插入元素
array_splice() 在数组中删除和插入元素,并且可以用被删除的元素创建另一个数组
array_splice(array, start [, length [, replacement] ]);
ps:$subjects = array("tom", "jim", "cherry", "alice", "gina", "lilei”, "lucy");
$removed = array_splice($subjects, 2, 3);
//$removed 是array("cherry", "alice", "gina");
//$subjects 是array("tom", "jim", "lilei", "lucy");
如果省略length参数,array_splice()将删除到数组末尾;
如果只是简单地删除原数组中的元素,而不关心他们的值,则不需要将array_splice()的结果赋值给变量
要在被删除的元素的位置插入新的元素,应ongoing第4个参数;
$new = array("one", "two", "three");
array_splice($subjects, 4, 3, $new); //$subjects是array_splice("tom", "jim", "cherry", "one", "two", "three");
替换数组的元素个数不需要和被删除元素的数目相同,数组可以按需要增加或减少
$subjects = array("tom", "jim", "alice");
$new = array("cherry", "gina");
array_splice($subjects, 2, 0, $new); //$subjects 是array("tom", "jim", "cherry", "gina", "alice");
14、数组和变量间的转换
php提供了两个函数extract() 和 compact(), 用于数组和变量之间的转换,变量的名字对应数组中的键名,变量的值为数组中的赋值;
从数组创建变量
extract(array, [EXTR_PREFIX_ALL, "str"]);
$person = array('name' => "tom", 'age' => 35, 'wife' => "lucy");
extract($person);
可以转换成下面的变量:
$name = "tom";
$age = 35;
$wife ="lucy";
如果加了第二个参数:
$str_name = "tom";
$str_age = 35;
$str_wife = "lucy";
从变量创建数组:
compact() 函数和extract()函数正好相反,将多个变量名或单个数组作为参数传给compact(),可以合并出一个新的数组
$color = "yellow";
$shape = "curvy";
$floppy = "none";
$a =compact("color", "shape", "floppy");
php 学习笔记 数组2的更多相关文章
- Java菜鸟学习笔记--数组篇(三):二维数组
定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...
- JavaScript学习笔记-数组
数组 数组中的每个元素的位置是索引,索引是基于32位的由0开始的数值,最大索引为(2的32次方-2),最大长度为(2的32次方-3) 数组是无类型的:元素可为任意类型:动态的:可根据需要自动增长.缩减 ...
- JavaScript学习笔记——数组
javascript数组数组是一个可以存储 一组 或是 一系列 相关数据 的 容器. 一.为什么要使用数组. (1)为了解决大量相关数据的存储和使用的问题. (2)模拟真是的世界. 二.如何创建数组 ...
- JavaScript学习笔记-数组(1)
数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引.JavaScript数组是无类型的:数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的类型.数 ...
- Java菜鸟学习笔记--数组篇(二):数组实例&args实例
基本类型实例 //1.定义一个一维数组,先声明,在分配空间 int []number;//生命,没有初始化,number=null number=new int[5];//初始化为默认值,int默认值 ...
- js学习笔记——数组方法
join() 把数组中所有元素转化为字符串并连接起来,并返回该字符串, var arr=[1,2,3]; var str=arr.join("#"); //str="1# ...
- JS学习笔记-数组
ECMAScript中没有提供类和接口等的定义,但它却是一门面向对象的语言,由于它能够通过其它 方式实现类似高级语言的面向对象功能,这些内容将在后面的文章中进行一步步的总结.此篇仅对JS中对象作简要说 ...
- PHP学习笔记-数组(1)
1-1 数组定义 1.什么是数组? 所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组 ...
- php 学习笔记 数组3
15.使用数组 1).并集(union) array_merge(array1,array2,array3..) 函数把两个或多个数组合并为一个数组,后面覆盖前面 2). 交集(intersecti ...
随机推荐
- ThinkPHP第十三天(CONF_PATH、APP_PATH,UEditor用法)
1.CONF_PATH 项目配置文件目录地址,APP_PATH 项目地址 2.ThinkPHP中更新数据的连接操作位save(),更新一个字段可以用setField(name,value)方法. 3. ...
- python自学笔记(九)python练习题
1. 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF",要求如下 1.1 请将a字符串的大写改为小写,小写改为大写 print a.swapcase() 1.2 ...
- .NET Core 安装
Visual Studio 2015 和 .NET Core 安装 安装 Visual Studio 和 .NET Core 1.安装 Visual Studio Community 2015,选择 ...
- perl5 第十二章 Perl5中的引用/指针
第十二章 Perl5中的引用/指针 by flamephoenix 一.引用简介二.使用引用三.使用反斜线(\)操作符四.引用和数组五.多维数组六.子程序的引用 子程序模板七.数组与子程序八.文件句 ...
- C++头文件的包含顺序研究
一.<Google C++ 编程风格指南>里的观点 公司在推行编码规范,领导提议基本上使用<Google C++ 编程风格指南>.其中<Google C++ 编程风格指南 ...
- HDU 2852 KiKi's K-Number
权值线段树 #include <cstdio> #include <cstring> const int N=200000,M=220000; int k,q,x,y,sum[ ...
- Flex疑难小杂症
本文主要解决Flex中一些小问题,收集一些小技巧(来自网络及个人经验) flex自动换行问题 有时候由于label .button等控件中需要用到text属性显示出文本,文本太长就涉及到换行问题,解 ...
- Node log4js
一个完善的项目,日志是必不可少的一部分,在node开发中,调试成了让开发者头疼的部分,因此日志成为在node中帮助调试的一个重要模块. 一.Node使用Log4js 1.使用npm工具,在命令行中 执 ...
- .Net将多个DLL打包为一个DLL(ILMerge)
在做.Net底层编码过程中,为了功能独立,有可能会生成多个DLL,引用时非常不便.这方面微软提供了一个ILMerge工具原版DOS工具,可以将多个DLL合并成一个.下载完成后需要安装一下,然后通过DO ...
- Angular JS 学习笔记(二)
1. AngularJS 是一个 JavaScript 框架.它可通过 <script> 标签添加到 HTML 页面.AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定 ...