深入了解PHP中的Array数组和foreach_php实例

1. 了解数组

PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。详细的解释可参见:PHP.net中的Array数组    。

2.例子:一般的数组

这里,我通过一个简单的例子,并使用图形方式来了解数组。

$a = array(3 => 'a', 1 => 'b', 2 => 'c');

echo var_dump($a);

 [注]:使用箭头描述数组$a各个单元对应某一内存地址的数据值(实际上,它内部结构采用HashTable结构,可以参考鸟哥写的PHP中的Hash算法)。

3.例子:在数组定义中,添加引用。

$x = 'x';
$a = array(3 => 'a', 1 => &$x, 2 => 'c');

echo "<hr>";
echo var_dump($a);

$x = 'y';
echo var_dump($a);

数组$a中的第2个单元$a[1]与$x对应的是同一个数据,使用var_dump($a)的时候,会看到数组的第2个单元多个&符号,即&string(1) "x",表示引用。

当 修改$x的值='y',也等同于修改$a[1]的值='y'。

下图可以清楚的描述这一变化:

4.例子:使用foreach遍历数组。

$a = array(3 => 'a', 1 => 'b', 2 => 'c');

echo "<hr>";
foreach ($a as $key => $value) {
  echo "$key => $value <br>";

}

每次循环中,当前数组中单元的值被赋给 $value ,单元的key被赋给$key。如下图描述:

【注:】灰色虚箭头表示赋予某一值。

 5.例子:在foreach遍历数组中,使用引用赋值。

$a = array(3 => 'a', 1 => 'b', 2 => 'c');

echo "<hr>";
foreach ($a as $key => &$value) {
  $value.='n';
  echo "$key => $value <br>";

}

每次循环中, $value 都指向当前数组中单元的值,再执行“ $value.='n'; ”代码 ,如下图描述:

6.例子:对例子5的进一步分析。

在例子5,foreach遍历数组完成后,不会自动销毁$value变量,与数组$a最后一个单元$a[2]指向同一个数据。

这时候改变$value的值,也就是改变了$a[2]的值。

$value='m';

echo "<hr>";
echo "\$value=$value <br>";
echo var_dump($a);

实例验证, 数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁。

7.小结

以上例子,只是描述php中的array数组和foreach的一些特性。学习最后,感觉php中的array数组和foreach不同于别的编程语言,不能使用类似C语言的结构分析PHP。

以上就是小编为大家带来的深入了解PHP中的Array数组和foreach全部内容了,希望大家多多支持~

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, 数组
foreach
js array foreach、array.foreach、php array foreach、jsonarray foreach、jquery array foreach,以便于您获取更多的相关知识。

时间: 2024-09-25 15:19:24

深入了解PHP中的Array数组和foreach_php实例的相关文章

Javascript中的Array数组对象详谈

 这篇文章主要介绍了Javascript中的Array数组对象,需要的朋友可以参考下 首先数组的定义以及初始化的方法:  var myArray = new Array(1,3.1415,"love"); //这里注意myArray数组中的元素不只是同一种数据类型的元素,可以有整形,有浮点型,有字符串等等都可以.这里充分展示了javascript作为一种语言对数据类型的弱化,语言更加的随意化,简便化.就行定义对象的时候用var一样.  在此介绍的有限,同时有一些我没有给出结果,希望大家

深入了解PHP中的Array数组和foreach

1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我通过一个简单的例子,并使用图形方式来了解数组. $a = array(3 => 'a', 1 => 'b', 2 => 'c'); echo var_dump($a); [注]:使用箭头描述数组$a各个单元对应某一内存地址的数据值(实际上,它内部结构采用HashTable结构,可以参考鸟哥写

浅析JavaScript中的array数组类型系统_javascript技巧

前面的话 数组是一组按序排列的值,相对地,对象的属性名称是无序的.从本质上讲,数组使用数字作为查找键,而对象拥有用户自定义的属性名.javascript没有真正的关联数组,但对象可用于实现关联的功能 Array()仅仅是一种特殊类型的Object(),也就是说,Array()实例基本上是拥有一些额外功能的Object()实例.数组可以保存任何类型的值,这些值可以随时更新或删除,且数组的大小是动态调整的 除了对象之外,数组Array类型可能是javascript中最常用的类型了.而且,javasc

Javascript中的Array(数组) 、{}(映射) 与JSON解析

做网页总会使用javascript,使用javascript总会使用JSON.最近用到一下,就写写. 下面是总结: 1.将javascript中的Array和{}转化为json字符串可以使用json2.js,源码地址https://github.com/douglascrockford/JSON-js. 2.将json字符串转为javascript对象,可以使用javascript自带的eval函数. 3.javascript中可以使用typeof查看变量的类型. 4.要访问json字段,必须是

php的array数组和使用实例简明教程

 最近在教一个朋友php,他没有其他语言的基础.对array的理解和用法有些模糊.所以写了个教程,需要的朋友可以参考下 注意注释部分的文字介绍哦~    代码如下:<?php //实例化一个数组 $array = array(); //数组由两部分组成 如下 //array(键名[key]=>值[value]) //键名一般用与索引 //类型可以为 int 或 字符串[int是什么可以查php手册] //所以可以这样写 //$array = array(0=>'a',1=>'b')

php的array数组和使用实例简明教程(容易理解)_php实例

注意注释部分的文字介绍哦~ 复制代码 代码如下: <?php//实例化一个数组$array = array();//数组由两部分组成 如下//array(键名[key]=>值[value])//键名一般用与索引//类型可以为 int 或 字符串[int是什么可以查php手册]//所以可以这样写//$array = array(0=>'a',1=>'b');//你也可以这样写//array会自动补充索引键名,默认是 int值 由0开始$array = array('a','b');/

javascript中的array数组使用技巧_基础知识

复制代码 代码如下: var array = new Array(["no1","no2"]); array["po"] = "props1"; alert(array[0][0]); alert(array.length); //2 //对于数组来说,array[0]同array["0"]效果是一样的(?不确定,测试时如此) alert(array[0] + "_" + array[&

PHP中的array数组类型分析说明_php技巧

php的数组的key 可以是string类型也可以是integer类型.如果key为一个float类型,会自动的转化为integer类型. 如果没有为一个value指定一个key,integer类型的索引的最大值已经给出的话,新key就是这个最大值加1.如果这个新key已经被赋值,那么这个value将会被覆盖掉. 复制代码 代码如下: <?php $arr = array('a','b',5=>'c','d','e',6=>'g'); echo '<pre>'; print_

Java中实现双数组Trie树实例_java

传统的Trie实现简单,但是占用的空间实在是难以接受,特别是当字符集不仅限于英文26个字符的时候,爆炸起来的空间根本无法接受. 双数组Trie就是优化了空间的Trie树,原理本文就不讲了,请参考An Efficient Implementation of Trie Structures,本程序的编写也是参考这篇论文的. 关于几点论文没有提及的细节和与论文不一一致的实现: 1.对于插入字符串,如果有一个字符串是另一个字符串的子串的话,我是将结束符也作为一条边,产生一个新的结点,这个结点新节点的Ba