php的数组与数据结构
一.数组的分类与定义
分类:
1.索引数组 $array = array(1,2,3,4,5);
2.关联数组 $array=array(1=>"aa","bb"=>2);
定义:
1.直接为数组元素赋值即可声明数组
<?php
$countact1[0]=1;
$countact1[1]="高某";
$countact1[2]="A公司";
$countact1[3]="北京市";
$countact1[4]="(010)987654321";
$countact1[5]="gao@brophp.com";
2.使用array()函数声明数组
$contact = array(1,"高某","A公司","北京市","(010)9876554321","gao@brophp.com");
二.取值
1. 索引数组取值:
$array[0] ; //用索引号来取值
2.关联数组取值:
$array["bb"]; //用key取值
三.遍历数组
1.for循环
//for循环遍历,针对于索引数组,不能遍历关联数组
for($i=0;$i<count($attr);$i++)
{
echo $attr[$i]."<br>";
}
2.foreach
foreach($array as $value)
foreach($array1 as $key => $value)
//foreach遍历,可以遍历索引数组和关联数组
foreach($attr as $value)
{
echo $value."<br>";
} foreach($attr as $key=>$value)
{
echo $key."=>".$value."<br>";
}
3.each()函数
返回数组中当前的键/值对并将数组指针向前移动一步
reset() 将指针重置第一
//each()函数,取数组里面的某一个元素,依次向下取值,将该元素以数组的形式返回
print_r(each($attr));
echo "<br>";
print_r(each($attr));
echo "<br>";
print_r(each($attr));
echo "<br>--------------------------";
//将指针复位,指向第一个元素
reset($attr);
print_r(each($attr));
echo "<br>";
print_r(each($attr));
echo "<br>";
print_r(each($attr));
4.list()函数
从数组中取值赋给一组变量
//list()函数
list($a,$b,$c,$e,$f) = $attr;
echo $a;
echo $b;
echo $c;
echo $e;
echo $f;
5.each()和list()结合
while(list($key,$value) = each($arr))
//用each()和list()函数遍历数组,索引数组和关联数组都可以
list($key,$value) = each($attr);
echo $key."=>".$value;
list($key,$value) = each($attr);
echo $key."=>".$value; while(list($key,$value) = each($attr))
{
echo $key."=>".$value."<br>";
}
6.使用指针
取得目前指针位置的内容资料 current()
取得目前指针位置的索引值 key()
将数组的内部指针倒回一位 prev()
将数组的内部指针向前移动一位 next()
将数组的内部指针指向最后一个单元 end()
将数组的内部指针指向第一个单元 reset()
$attr = array("one"=>10,"2"=>"aa","three"=>20); echo current($attr); //取当前指针指向的内容value
echo key($attr); //取当前指针指向的索引key
echo "<br>";
next($attr); //将指针向下移动
echo current($attr); //取当前指针指向的内容value
echo key($attr); //取当前指针指向的索引key
echo "<br>";
prev($attr); //将指针向上移动
echo current($attr); //取当前指针指向的内容value
echo key($attr); //取当前指针指向的索引key
echo "<br>";
end($attr); //将指针指向最后一个元素
echo current($attr); //取当前指针指向的内容value
echo key($attr); //取当前指针指向的索引key
echo "<br>";
reset($attr); //将指针复位
echo current($attr); //取当前指针指向的内容value
echo key($attr); //取当前指针指向的索引key
echo "<br>";
7.预定义数组
声明为全局变量 global
引用全局作用域中可用的全局变量 $GLOBALS
服务器和执行环境信息 $_SERVER
环境变量 $_ENV
HTTP GET 变量 $_GET
HTTP POST 变量 $_POST
HTTP Request 变量 $_REQUEST
HTTP 文件上传变量 $_FILES
Session 变量 $_SESSION
HTTP Cookies $_COOKIE
php的数组与数据结构的更多相关文章
- php数组·的方法-数组与数据结构
/*数组与数据结构*/ //shuffle() 随机打乱数组 //array_push() 数组末尾添加元素 //array_pop() 数组末尾删除元素 //array_shift() 数组首位删除 ...
- PHP08 数组和数据结构
学习要点 数组的分类 数组的定义 数组的遍历 预定义数组 数组的相关处理函数 PHP操作数组需要注意的细节 数组的分类 关于PHP数组 由于PHP是弱类型的编程语言,所以PHP数组中的数组变量可以存储 ...
- 5_PHP数组_3_数组处理函数及其应用_8_数组与数据结构
以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. 数组与数据结构 1. array_push() 函数 程序: <?php $stack = array(&q ...
- 一篇文章让你了解动态数组的数据结构的实现过程(Java 实现)
目录 数组基础简单回顾 二次封装数组类设计 基本设计 向数组中添加元素 在数组中查询元素和修改元素 数组中的包含.搜索和删除元素 使用泛型使该类更加通用(能够存放 "任意" 数据类 ...
- PHP——数组和数据结构
<body> <?php $arr[0]=5;//赋值定义 $arr[1]="aa"; print_r($arr); echo "<br /> ...
- PHP数组和数据结构(下)未完。。。。
1.数组的遍历 (1)each(): 接受一个数组作为参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置 键/值对被返回为带有四个元素的关联和索引混合的数组,键名分别为0,1,k ...
- PHP数组和数据结构(上)
1.数组的声明 两种方法: 直接给数组元素赋值 使用array()函数声明 说明: (1)索引数组的下标可以是非连续的值,只要在初始化时指定非连续的下标值即可 如果指定的下标值已经声明过,则属于对变量 ...
- 算法求解中的变量、数组与数据结构(STL 中的容器)
本质上算法都是对数据的操作,没有数据,没有存储数据的容器和组织方式,算法就是无源之水无本之木,就是巧妇也难为无米之炊.算法是演员,变量.数组.容器等就是舞台, 然后整个算法的处理流程,都是针对这些数据 ...
- 递归遍历多维数组(树数据结构)的超级简单方式,并且可以递归超过200层,摘自<<PHP精粹:编写高效PHP代码>>
<?php $array = array( "Hello", // Level 1 array( "World" // Level 2 ), array( ...
随机推荐
- java的IO流
java的IO流继承四大抽象类分别是字节流 inputStream outputStream与字符流 read write.怎么理解记忆很重要. 直接连接读写对象的是结点流,例如对文件读取字节类的名字 ...
- 【CITE】C# 如何 实现一个窗体和另一个窗体始终保持相对的位置
C# 如何 实现一个窗体和另一个窗体始终保持相对的位置,任由一个窗体移动,当点击按钮时,弹出的另一个窗体也与之保持相对位置(如左上角)你根据第一个窗体的location去算第二个窗体的location ...
- [maven] settings 文件节点配置详解
基本结构 <settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3. ...
- 小例子(二)、winform窗体间的关系
写一个关于winform窗体间的关系 1.登陆,思路:登陆后隐藏登陆窗体,关闭Form2时结束整个应用程序. //登陆窗体 private void button2_Click(object send ...
- C/C++ 关于生成静态库(lib)/动态库(dll)文件如何使用(基于windows基础篇)
1. 首先,如何制作一个静态库(lib)? 额, 对于静态库,我们知道,里头是不应该有Main函数,它只是一个配合文件.之所以称之为lib静态库,其实就是指,我们需要用到lib里头的函数时,我们才会去 ...
- 在Linux下安装aws命令行操作
使用安装包安装 环境: Linux, OS X, or Unix Python 2 version 2.6.5+ or Python 3 version 3.3+ 检查Python版本 $ pytho ...
- 关于时间序列数据库的思考——(1)运用hash文件(例如:RRD,Whisper) (2)运用LSM树来备份(例如:LevelDB,RocksDB,Cassandra) (3)运用B-树排序和k/v存储(例如:BoltDB,LMDB)
转自:http://0351slc.com/portal.php?mod=view&aid=12 近期网络上呈现了有关catena.benchmarking boltdb等时刻序列存储办法的介 ...
- MyEclipse8.6 破解以及注册码
建立JAVA工程文件.将以下Java代码拷贝至类中并执行即可. 注册码: register name: bobo9360013 Serial:oLR8ZC-855550-6065705698041 ...
- Redis的简单介绍及在Windows下环境搭建
简单介绍 1,Redis是什么 最直接的还是看官方的定义吧. Redis is an open source (BSD licensed), in-memory data structure stor ...
- 使用AlarmManager设置闹钟----之二
import android.media.MediaPlayer;import android.os.Bundle;import android.app.Activity;import android ...