//数组的创建
//1
$usernames = array('李彦宏','周宏伟','马云','俞敏洪','李开复');
echo $usernames; //array,打印类型
echo '<br />';
echo $usernames[1];
echo '<br />';
print_r($usernames);//print_r()打印变量的信息 //2 通过range()函数自动创建一个数组
$numbers = range(1, 10);
$letters = range('a', 'z');
$numbers2 = range(1, 10, 2); //第三个参数表示步长 print_r($numbers);
echo '<br />';
print_r($letters);
echo '<br />';
print_r($numbers2); //1 3 5 7 9 //循环打印数组
//for循环,count()获得数组长度,这种必须下标从0开始,且为数字
for($i=0;$i<count($numbers);$i++){
echo '<br />';
echo $numbers[$i];
}
//foreach()打印数组,只能打印数组
if(is_array($numbers)){ //如果是数组
foreach ($numbers as $key=>$value){
echo '<br />';
echo $key.'---'.$value;
}
} //3 自定义键数组
$usernames = array('baisu'=>'李彦宏','taobao'=>'马云','tengxu'=>'马化腾');
// print_r($usernamessernames);
$usernames['goggle'] = '李开复'; //追加数组
// print_r($usernames); //直接创建自定义键数组
$userages['党'] = '22';
$userages['周'] = '23';
print_r($userages); // 循环打印foreach();each();list();
foreach ($userages as $key=>$value){
echo '<br />';
echo $key."--".$value;
} // $a = each($userages); //返回数组当前键值对(是一个数组)并将数组指针向前移动一步
// echo $a[0].'--'.$a[1]; while (!!$a=each($userages)){ //!!转化为布尔值,如果值存在返回1
echo $a[0].'--'.$a[1].'<br />';
//echo $a['key'].'--'.$a['value'].'<br />';
} // $a = array('a','b','c'); //list()只能识别数字下标
// list($var1,$var2)=$a; //list($var1,$var2)就是将$var1='a',$var2='b'
// echo $var2; //b list($name,$age)=each($userages);
echo $name.'---'.$age.'<br />'; //reset();将数组的指针指向第一个单元上,可以对each()指针操作
//$a = array_unique();创建一个新数组,新数组移除原数组中重复的值,原数组不动
//array_flip();对调数组中的键和值,不会改变本体,而是返回新数组,同上 //4 数组里的数组:二维数组
$products=array(
array('苹果',1),
array('橘子',2),
array('栗子',3)
);
// print_r($products);
//双重循环打印数组
// echo count($products); //3
for ($i=0;$i<count($products);++$i){
for ($j=0;$j<count($products[$i]);++$j){
echo $products[$i][$j].'|';
}
echo '<br />';
} //双重循环打印二维数组
$products=array(
array('产品名'=>'苹果','数量'=>1),
array('产品名'=>'苹果','数量'=>1),
array('产品名'=>'苹果','数量'=>1)
); for ($i=0;$i<count($products);++$i){
foreach ($products[$i] as $key=>$value){
echo $key.'--'.$value.'|';
}
echo '<br />';
} for ($i=0;$i<count($products);++$i){
while (!!list($key,$value)=each($products[$i])){
echo $key.'--'.$value.'|';
}
echo '<br />';
} //5 数组排序
$fruit = array('banner','orange','apple'); //sort();
sort($fruit);
print_r($fruit); //a b o,中文也可以的 $numbers = array(2,3,4,5,6);
sort($numbers);
print_r($numbers); //sort()函数的第二个参数是可选的。这个可选参数可以传递SORT_REGULAR(默认值)、SORT_NUMERIC或SORT_STRING。指定排序类型的功能是非常有用的。比如,当要比较可能包含有数字2和12的字符串时,从数字角度看,2要小于12,但是作为字符串,"12"却要小于"2"。
$numbers = array("12","2");
sort($numbers,SORT_STRING);//按字符串排序
print_r($numbers); //asort(),保留索引关系
$fruit = array('banner','orange','apple');
asort($fruit);
print_r($fruit); //ksort(),对键排序
$fruit = array('b'=>'banner','a'=>'orange','c'=>'apple');
ksort($fruit);
print_r($fruit); //反向排序,在前边的前边加r
$numbers = array(2,3,4,5,6);
rsort($numbers);
print_r($numbers); shuffle();随机排序
$pic = array('mm1.jpg','mm2.jpg','mm3.jpg','mm4.jpg','mm5.jpg');
shuffle($pic); //随机打乱数组
for ($i=0;$i<count($pic)-2;++$i){
echo '<img src="data:images/'.$pic[$i].'" style="margin:10px;" />';
echo "\n";
} //把数组反方向,一般array开头的不会改变原数组,生成新的数组
$a = array_reverse($pic);
print_r($a); //6 添加函数
$username = array("dang");
//array_unshift();开头插入元素,插入成功返回int
array_unshift($username, 'zhou');
print_r($username);
//array_push();//结尾插入数据
array_push($username,'haha');
print_r($username); // 删除数组元素
array_shift($array); 删除开头元素
array_pop();删除结尾元素 array_rand();随机取出数组中一个或多个键,多个返回的是数组
$fruit = array('banner','orange','apple');
$a = array_rand($fruit,1);
echo $fruit[$a]; //7 数组指针的操作
// 在数组中浏览:each()、current()、reset()、end()、next()、pos()、prev();
// 调用next()或each()将使指针前移一个元素。调用each($array_name)会在指针前移一个位置之前返回当前元素。next()函数则有些不同----调用next($array_name)是将指针前移,然后再返回新的当前元素。
// 要反向遍历一个数组,可以使用end()和prev()函数。prev()函数和next()函数相反。它是将当前指针往回移一个位置然后再返回新的当前元素。
$fruit = array('banner','orange','apple');
$usernames = array('baisu'=>'李彦宏','taobao'=>'马云','tengxu'=>'马化腾'); //current();获取指针的当前元素,current并没有把指针移到下一步
echo current($usernames); //next();向后移一位
echo next($usernames);
echo current($usernames);
reset($usernames); //将指针指向第一个单元
echo current($usernames); $usernames = array('baisu'=>'李彦宏','taobao'=>'马云','tengxu'=>'马化腾');
//统计数组个数,sizeof();count();
echo sizeof($usernames);
echo count($usernames);
//array_count_values()统计数组内所有值出现的个数
$a = array(1,2,3,3,3,2,2);
print_r (array_count_values($a)); //8 将数组转换成标量变量
//对于一个非数字索引数组,而该数组又有许多关键字-值对,可以使用函数extract()将它们转换成一系列的标量变量。
//函数extract()的作用是通过一个数组创建一系列的标量变量,这些变量的名称必须是数组中关键字的名称,而变量值则是数组中的值。
//extract(array var_array,[int extract_type],[string prefix]);
$fruits = array('a'=>'apple','b'=>'banner','c'=>'orange');
extract($fruits);
echo $a; //apple
echo $c; //orange

php数组的创建及操作的更多相关文章

  1. Numpy 学习之路(1)——数组的创建

    数组是Numpy操作的主要对象,也是python数据分析的主要对象,本系列文章是本人在学习Numpy中的笔记. 文章中以下都基于以下方式的numpy导入: import numpy as np fro ...

  2. paip.数组以及集合的操作uapi java php python总结..

    paip.数组以及集合的操作uapi 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/att ...

  3. php数组使用技巧及操作总结

    数组,可以说是PHP的数据应用中较重要的一种方式.PHP的数组函数众多,下面是一些小结,借此记之,便于以后鉴之. 1. 数组定义 数组的定义使用 array()方式定义,可以定义空数组:<?ph ...

  4. 初识Java——一维数组的创建及使用

    数组作为对象是允许使用new关键字进行内存分配的,在使用数组前,必须首先定义数组的变量所属的类型.一维数组的创建有两种方法: 1,先声明,再用new运算符进行内存分配 数组元素类型+数组名字[] 数组 ...

  5. NSArray与NSMutableArray 数组与可变数组的创建和遍历 复习

    1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组. 2.NSArray的创建 NSArray * array = [[NSArray alloc]initWi ...

  6. JavaScript基础04——数组的创建及方法

    数组的概念及定义 数组的概念:         一组数据,数据的组和         哪些数据的组和,只要是数据(所有数据),就可以放在数组中 数组的意义:         可以同时操作多个数据 数组 ...

  7. Java数组声明创建和使用以及多维数组、Arrays类、稀疏数组

    目录 数组概述 数组声明创建 内存分析 java内存分析 堆 栈 方法区 三种初始化 静态初始化 动态初始化 数组的默认初始化 数组的四个基本特点 数组边界 小结: 数组使用 数组基础使用 For E ...

  8. ABP创建数据库操作步骤

    1 ABP创建数据库操作步骤 1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置. <add name="Default" pro ...

  9. array_reduce方法用回调函数迭代地将对数组的值进行操作

    在处理php数组的时候,有一种需求特别的频繁,如下二维数组: $arr = array( 1=>array( 'id' => 5, 'name' => '张三' ), 2=>a ...

随机推荐

  1. Code First05--CodeFirst中值对象

    今天主要介绍EF Code First中一个高级部分:Value Object,中文翻译过来叫做值对象. 所谓的值对象就是一些没有生命周期,也没有业务逻辑上唯一标识符的类.哪些类是Entity,哪些类 ...

  2. [BZOJ3991][SDOI2015]寻宝游戏

    [BZOJ3991][SDOI2015]寻宝游戏 试题描述 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有且仅有一条路径可达.游戏开始时,玩家可以任意选择 ...

  3. 破解Excel保护

    一.录制宏 二.停止录制 三.查看录制 四.点击编辑进入VB编辑环境 五.清空原有的内容,copy以下代码 Public Sub 工作表保护密码破解() Const DBLSPACE As Strin ...

  4. js之序列化、eval和Date类用法

    序列化 JSON.stringify() 将对象转换为字符串 JSON.parse() 将字符串转换为对象类型 示例 var jsonStr = '{"name":"le ...

  5. 转:js中this关键字详解

    this指向哪里? 一般而言,在Javascript中,this指向函数执行时的当前对象. In JavaScript, as in most object-oriented programming ...

  6. Python类的特点 (3) :静态方法与类方法

    Python中的方法有4种: 1)模块中的全局方法,不属于任何类,用"模块名.方法名"形式调用. 2)类中定义的实例方法,也被称为绑定方法(Bound method),这种方法的第 ...

  7. 【MySQL】MySQL 如何实现 唯一随机数ID

    如果不是 UUID 好像比较困难 参考资料: http://bbs.csdn.net/topics/390001507 https://www.zhihu.com/question/20151242

  8. hdu2457

    AC自动机+DP #include <cstdio> #include <queue> #include <cstring> using namespace std ...

  9. ios delegate 使用注意 assign,weak

    今天一个同事写代码,把一个delegate对象设定成了assign类型属性,没有用weak,就是delegate对象释放后,不会把delegate指针自动设定为nil,把对象的delegate设定成了 ...

  10. ZPF MYSQL数据库链接层

    2015年3月31日 18:27:34 最后编辑: 2016年4月17日 00:22:00 星期日 读写分离: 根据最终的sql语句来判断是读还是写  (随后会考察并加上一致性哈希) 链式调用: 参看 ...