PHP 遍历数组语句总结(foreach,for,list,each)
foreach来访问, 遍历的顺序是固定的么? 以什么顺序遍历呢?
比如:
代码如下 | 复制代码 |
<?php 例2 $capitals= array("Ohio"=> "Columbus","Towa"=> "Des Moines","Arizona"=> "Phoenix"); |
while()
while() 通常和 list(),each()配合使用。
#example2:
代码如下 | 复制代码 |
<?php while(list($key,$val) = each($colors)) { 显示结果: Other list of red. |
3. for()
#example3:
代码如下 | 复制代码 |
for ($i = 0;$i < count($arr); $i++) { the number is zero. |
========= 以下是函数介绍 ==========
key()
mixed key(array input_array)
key()函数返回input_array中位于当前指针位置的键元素。
#example4
代码如下 | 复制代码 |
Can you name the capitals of these states? |
each() 函数遍历数组
例子 1
代码如下 | 复制代码 |
<?php 输出: Array ( [1] => Peter [value] => Peter [0] => 0 [key] => 0 ) |
子 2
each() 经常和 list() 结合使用来遍历数组。本例与上例类似,不过循环输出了整个数组:
代码如下 | 复制代码 |
<?php reset($people); while (list($key, $val) = each($people)) |
输出:
0 => Peter
1 => Joe
2 => Glenn
3 => Cleveland
多维数组的递归遍历
代码如下 | 复制代码 |
<?php $arr1 = array (1=>array(11,12,13,14=>array(141,142)),2,3,4,5); echo '<pre>'; arr_foreach ($arr1); 结果 Array ) [2] => 2 |
http_build_query
(PHP 5) http_build_query — 生成 URL-encode 之后的请求字符串
代码如下 | 复制代码 |
<?php |
compact
array compact ( mixed $varname [, mixed $... ] )
(PHP 4, PHP 5) compact — 建立一个数组,包括变量名和它们的值
代码如下 | 复制代码 |
<?php $qs=compact('province','city','name'); |
urldecode、urlencode
下面来看介绍与实例。
parse_url($str url);
把url转换成数组
代码如下 | 复制代码 |
*/ /* |
url 专用格式字符串还原成普通字符串。
语法: string rawurldecode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明
本函数将字符串解码。从 url 的字符串专用格式解成普通字符串。详细的编码解码信息及规格文件可以参考 rfc 1738。
代码如下 | 复制代码 |
*/ echo rawurldecode('foo%20bar%40baz'); //输出foo bar@baz string rawurlencode ( string str ) |
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。这是在 rfc 1738 中描述的编码,是为了保护原义字符以免其被解释为特殊的 url 定界符,同时保护 url 格式以免其被传输媒体(像一些邮件系统)使用字符转换时弄乱。例如,如果你想在 ftp 的 url 中包含密码:
代码如下 | 复制代码 |
*/ /* $str="http%3a%2f%2fwww.111cn.net"; /* */ $str="http://www.111cn.net"; //定义字符串 |
1.单例模式的概念
顾名思义,单例模式只有一个实例,而且自行实例化,向全局提供这个实例。需要强调的是,单例模式
确保某个类只能有一个实例!
2.单例模式的三个要点
(1)需要一个静态变量来保存类的唯一实例
代码如下 | 复制代码 |
private static $_instance; |
(2)构造函数和克隆函数必须为私有的,防止用户创建对象和复制实例对象
代码如下 | 复制代码 |
private function __construct() |
(3)必须提供一个公共的静态方法(一般为getInstance),从而返回一个唯一实例的引用
代码如下 | 复制代码 |
public static function getInstance() { if(! (self::$_instance instanceof self) ) { self::$_instance = new self(); } return self::$_instance; } |
3.php中使用单例模式的原因
PHP语言是一种解释型的脚本语言,这种运行机制使得每个PHP页面被解释执行后,所有的相关资
源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存,这和asp.net、Java等编译
型是不同的,比如在Java中单例会一直存在于整个应用程序的生命周期里,变量是跨页面级的,真正可
以做到这个实例在应用程序生命周期中的唯一性。然而在PHP中,所有的变量无论是全局变量还是类的静
态成员,都是页面级的,每次页面被执行时,都会重新建立新的对象,都会在页面执行完毕后被清空,
这样似乎PHP单例模式就没有什么意义了,所以PHP单例模式我觉得只是针对单次页面级请求时出现多个
应用场景并需要共享同一对象资源时是非常有意义的。
4.如何实现单例模式
代码如下 | 复制代码 |
<?php } } |
5.单利模式的应用场合
(1)应用与数据库的交互,多用于数据库的连接
(2)如果系统中需要一个类来全局控制配置信息,用单例模式可以很方便的实现
1、普通的数据库访问例子:
代码如下 | 复制代码 |
<?php //添加用户信息 ...... //在函数中访问数据库,查找用户信息 ?> |
2、应用单例模式对数据库进行操作:
代码如下 | 复制代码 |
class DB public function addUserInfo(...)
} public function getUserInfo(...) } } //test $db = DB::getInstance(); $db->addUserInfo(...); $db->getUserInfo(...);
|
深入理解
代码如下 | 复制代码 |
<?php $db = db::getInstance(); ('name','password')); |
php中有很多的设计模式,其中的单例模式是我们写代码的时候较为常用的一种模式,它不但能
够有效的减少new操作的资源消耗,而且能够很方便的对某些全局配置信息进行控制!希望大家在php学
习中深刻理解单例模式的应用。
在php中要统计某月的第一天和最后一天我们可以使用strtotime函数进行转换,下面介绍两种方法各位朋友可参考。主要用到了strtotime函数,功能强大,支持相对日期
代码如下 | 复制代码 |
//计算本月第一天和最后一天 |
PHP数组是一个重要的概念,它包含有大量的函数,方便人们的开发…现将它的数组分类,以方便查询及应
用.
先说说PHP数组的定义…PHP数组包含两个项,key和value,可以通过key来获取相应的value,其中key又可
以是数值和关联的,如$array[0],$array[one]…
创建数组
PHP中的数组声明跟其它语言的也有点小小的差别,但一样可以声明为一维,两维,三维及多维等,如
$array[0] = 1,$array = array(1,2,3); 一维数组,只包括三个值,属于数值型数组,引用时可用$array
[0]来代表1,创建数值数组时可以省略索引
PHP中创建数组使用array()结构来定义,比如:
代码如下 | 复制代码 |
|
而如何显示数组中的各元素的值,我们则是使用从0开始的索引,索引号在变量名称后的方括号中,比如
代码如下 | 复制代码 |
:
|
输出的$people[2]就是显示的是nation(索引第一项从0计数)。
PHP除了支持数字索引数组以外,还支持相关数组。所谓相关数组,就是可自定义关键字来替换不直观的
数字索引,比如:
代码如下 | 复制代码 |
|
使用相关数组使得输出的选择很直观(不需要预先计算索引号然后输出),定义的关键字和值之间使用
“=>”符号定义。
根据PHP数组元素的两种显示方式,还可以如变量一样无需array()声明和初始化,直接自动创建数字。
比如
代码如下 | 复制代码 |
|
或者
代码如下 | 复制代码 |
|
该数组的大小根据所增加元素的多少动态的变化。
代码如下 | 复制代码 |
|
相关文章
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
- 这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <?php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
- Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
下面小编就为大家带来一篇JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-05-20- 下面小编就为大家带来一篇js遍历json的key和value的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-01-26
- 这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
借助jQuery我们可以轻松地堆DOM元素进行向上、向下遍历以及同级的遍历,本文我们即来整理jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结:...2016-07-25浅谈Java8 的foreach跳出循环break/return
这篇文章主要介绍了Java8 的foreach跳出循环break/return,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-28- Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
- 下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 遇到这个...2014-06-07
- 这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 这篇文章主要介绍了C#读取文件所有行到数组的方法,涉及C#针对文件及数组的相关操作技巧,需要的朋友可以参考下...2020-06-25
- 如何将下面的二维数组转为一维数组。复制代码 代码如下:$msg = array( array( 'id'=>'45', 'name'=>'jack' ), array( 'id'=>'34', 'name'=>'mary' ), array( 'id...2014-05-31
- 在php中为我们提供了一个函数var_export 他可以直接将php代码入到一个文件中哦。 代码如下 复制代码 var_export($times,true);后面不加tru...2016-11-25
- 本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享。 具体是这样的,如下一个二维数组,是从库中读取出来的。 代码清单: 复制代码 代码如下: $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'ema...2014-06-07
- 下面就为大家带来一篇jquery对Json的各种遍历方法总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-02