我的PHP之旅--数组的认识(初级)
数组
PHP的数组与swift有些许不同,分为3类(初级,以后会涉及到多维数组和数组指针等)。
- 枚举数组
- 关联数组
- 混合数组
枚举数组
枚举数组跟swift中的数组差不多:
<?php $arr = array(11, 55, "string"); // 这是枚举数组,可根据下标访问数据。 // 下标0:11 // 下标1:55 // 下标2:“string” echo arr[2]; ?>
关联数组
关联数组可以指定下标(只能是整数或字符串):
<?php // 语法 $arr = array("name" => "alex_sk", "age" => 23); // 这是枚举数组,可根据下标访问数据。 // 下标name:"alex_sk" // 下标age: 23 echo arr["age"]; // 可以根据指定的key来访问值 ?>
混合数组
混合数组就是下标类型既有字符串又有整形:
<?php // 语法 $arr = array("name" => "alex_sk", "age" => 23, 0, 5, 9 => 89, 55, 20 => 48); // 这是混合数组。 // 下标name :"alex_sk" // 下标age :23 // 下标0 :0 // 下标1 :5 // 下标9 :89 // 下标10 :55 // 下标20 :48 echo arr[10]; ?>
数组的创建:
<?php // 第一种创建方式: $arr = array("name" => "alex_sk", "age" => 23, "sex" => "男"); // 第二种创建方式: $arr2[0] = 5; // 当arr2没有被创建的时候,PHP会自动创建,并且为0下标赋值。 $arr2["key"] = "value"; $arr2[1] = 7; // 下标0:5 // 下标1:7 // 下标key:"value" // 第三种创建方式: $arr3[] = "first"; // 当arr3没有被创建的时候,PHP会自动创建,并且为0下标赋值。 $arr3[] = "second"; // $arr3[] 语句没有指定下标值,但是PHP会以最大的下标值+1来设置值 $arr3[5] = 5; $arr3[] = 6; // 下标0:"first" // 下标1:"second" // 下标5:5 // 下标6:6 ?>
认识一下多维数组吧
声明方式:
<?php // 第一种创建方式: $arr = array( array(1, 2, 3), array(4, 5, 6) ); // 下标[0][0]:1 // 下标[0][1]:2 // 下标[0][2]:3 // 下标[1][0]:4 // 下标[1][1]:5 // 下标[1][2]:6 echo arr[1][0]; // 第二种创建方式: $arr2[][] = 3; $arr2[][] = 4; // 下标[0][0]:3 // 下标[0][1]:4 ?>
数组的一些方法
- print_r:打印数组的方法,它会把数组中的所有成员显示的清清楚楚。
- count:返回数组的有效元素个数。
- foreach:多用于循环关联数组的循环。
<?php $arr = [5, 68, 73]; $sum = 0; // arr是枚举数组,可以使用for循环 for ($i = 0; $i < count($arr); $i++) { $sum += $arr[$i]; } // 想关联数组就无法用for循环了,可以用foreach,foreach是用数组指针遍历数组的。 $arr2 = ["name" => "alex_sk", "age" => 23, "sex" => "男"]; foreach ($arr2 as $key => $value) { echo "{$key} is {$value} </ br>"; } ?>
我的PHP之旅--数组的认识(初级)的更多相关文章
- 阅读lodash源码之旅数组方法篇-compact和concat
鲁迅说过:只有阅读过优秀库源码的人,才能配的上是真正的勇士. compact 创建一个新数组,包含原数组中所有的非假值元素.例如false, null,0, "", undefin ...
- php初级之数组与 类初级
PHP 是后端脚本语言,回顾一下: 1.1 PHP 数组: <?php $user = array(); // 定义一个数组 $user[0] = 'zhangsan'; // 给数组赋值 $u ...
- Java基础之数组类型
对于Java,前面的一些基础概念不是很想写,看了看还是从数组开始写吧(毕竟数组是第一个引用类型,相对复杂一点),我也是学了JAVA不是很久,目前看完了JAVA的基础视频,还有JAVA疯狂讲义这本书的大 ...
- C++二维数组(指针)做参数
一.问题描述 使用C++编程过程中经常需要使用到二维数组,然而初级程序员在使用过程中经常会出错使程序崩溃.下面就二维指针的定义,初始化,以及二维指针做参数给出简单介绍. 1.二维数组的定义与初始化 在 ...
- JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践
JAVA进阶之旅(二)--认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践 我们继续聊JAVA,这次比较有意思,那就是反射了 一.认识 ...
- JAVA之旅(十七)——StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder
JAVA之旅(十七)--StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder 讲完String,我们来聊聊他的小兄弟 一.StringB ...
- JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想
JAVA之旅(三)--数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想 我们继续JAVA之旅 一.数组 1.概念 数组就是同一种类型数据的集合,就是一个容器 数组的好 ...
- PHP内核之旅-5.强大的数组
PHP 内核之旅系列 PHP内核之旅-1.生命周期 PHP内核之旅-2.SAPI中的Cli PHP内核之旅-3.变量 PHP内核之旅-4.字符串 PHP内核之旅-5.强大的数组 PHP内核之旅-6.垃 ...
- 【Swift学习】Swift编程之旅---集合类型之数组(六)
swift提供了3种主要的集合类型,array,set,dictionary.本节介绍array. 数组是存储有序的相同类型的集合,相同的值可以多次出现在不同的位置. 注意: swift的Array类 ...
随机推荐
- ubuntu nexus 安装
今天公司组织学习使用linux系统搭建nexus maven私服中央仓库,在公司使用centos搭建了一个,回家又用ubuntu搭建一个,主要是为了能熟悉整个流程,现将主要过程总结如下:(PS:楼主是 ...
- aggregation 详解3(bucket aggregation)
概述 桶分聚合不进行权值的计算,他们对文档根据聚合请求中提供的判断条件(比如:{"from":0, "to":100})来进行分组(桶分). 桶分聚合还会额外 ...
- url解析
window.onload=function(){ var url="http://www.qq.com/index.html?key1=1&key2=2&key3=3&qu ...
- [转]使用ADO.NET访问Oracle存储过程
本文转自:http://www.cnblogs.com/datasky/archive/2007/11/07/952141.html 本文讨论了如何使用 ADO.NET 访问 Oracle 存储过程( ...
- Hive UDAF介绍与开发
UDAF简介 UDAF是用户自定义聚合函数.Hive支持其用户自行开发聚合函数完成业务逻辑. 通俗点说,就是你可能需要做一些特殊的甚至是非常扭曲的逻辑聚合,但是Hive自带的聚合函数不够玩,同时也还找 ...
- ubuntu 12.04 lts安装golang并设置vim语法高亮
安装golang sudo apt-get install golang 设置vim语法高亮 sudo apt-get install vim-gocomplete gocode vim-syntax ...
- 详解Windows 7系统中IE8/IE9/IE10三个版本的关系(转)
今年(2013)年初,微软开放了姗姗来迟的 IE10 for Windows 7 版本下载.至此,Windows 7 平台上可以运行三个 IE 浏览器版本.虽然 Windows 与 IE 经历了诸多版 ...
- Java获取方法参数名、Spring SpEL解析
@Test public void testParse() { //表达式解析 ExpressionParser expressionParser = new SpelExpressionParser ...
- Java实战之02Hibernate-06处理并发
十三.处理并发 1.事务的隔离级别 不考虑隔离级别出现的问题: 脏读:一个线程中的事务读到了另外一个线程中未提交的数据. 不可重复读:一个线程中的事务读到了另外一个线程中提交的update(更新)的数 ...
- 学习C++ Primer 的个人理解(十二)
动态内存与智能指针 在C++中, 动态内存用 new来分配空间并返回一个指向该对象的指针 用delete来销毁. 由于手动的对动态内存进行操作容易出现问题.所以新的标准库提供了两种智能指针. 智能指针 ...