$v1 = $a[0];
$v2 = $a[3];
$t = $v1;
$v1 = $v2;
$v2 = $t;//这种做法根本不行,因为v1,v2只是2个变量,跟数组没有关系了!
正确的做法是:
$t = $a[0];
$a[0] = $a[3];
$a[3] = $t;
需求2:交换数组首项和末项:
$pos1 = 0; //首项的下标
$pos2 = count($a) – 1; //最后一项的下标
$t = $a[$pos1];
$a[$pos1] = $a[$pos2];
$a[$pos2] = $t;
需求3:交换数组最大项和最小项:
$pos_max = ….; //经过一番计算得到最大项的下标;
$pos_min = ….; //经过一番计算得到最小项的下标
$t = $a[$pos_max];
$a[$pos_max] = $a[$pos_min];
$a[$pos_min] = $t;
数组的遍历foreach基本语法
foreach( $数组变量名 as 【$key =>】 $value ){
//循环体;这里可以去“使用”$key 和 value;
//$key 和 $value 就是该遍历语句一次次取得的数组的每一个单元(项)的下标和对应值 。
//而且,它总是从数组的开头往后按顺序取数据 。
}
数组的指针操作及遍历原理:
首先,看看数组的一个“形象图”:
$arr4 = array(1=>3, ‘a1’=>11, 3=>5, ‘mn’=>18, 88=>2 );
可以将其以视觉化的方式理解为:
数组下标:1“a1”3“mn”88对应数据:8115182其中,该箭头,就是数组内部的所谓“指针”——注意,不可见,不可输出,只是一种辅助理解的图形!
说明:
1,该箭头,就是数组内部的所谓“指针”
2,默认情况下,该指针指向数组的第一个单元 。
3,数组的有关单元的操作,如果没有指定下标,则就是针对该指针指向的单元的操作 。
4,所谓遍历,其实就是一次次取得当前单元的键和值,并放入对应的变量$key, $value,然后移动指针到下一个单元 。
则,数组,作为一个“总体数据单位”,有如下指针操作函数可以使用:
1,$v1 = current($数组); //获得数组的当做指针所在单元的“值”;
2,$v2 = key($数组); //获得数组的当做指针所在单元的“键”(下标);
3,$v3 = next($数组); //先将数组的指针移向下(后)一个单元,然后取得该新单元的值;
4,$v4 = prev($数组); //先将数组的指针移向上(前)一个单元,然后取得该新单元的值;
5,$v5 = end($数组); //先将数组的指针直接移向最后一个单元,然后取得该新单元的值;
6,$v6 = reset($数组); //先将数组的指针直接移向第一个单元,然后取得该新单元的值;
foreache遍历流程原理图:
foreach( $数组变量名 as $key => $value ){
//循环体;这里可以去“使用”$key 和 value;
//$key 和 $value 就是该遍历语句一次次取得的数组的每一个单元(项)的下标和对应值 。
//而且,它总是从数组的开头往后按顺序取数据 。
}
其基本原理示意图如下:
输出结果为:
可见:遍历之后,指针已经超出数组合理位置了 。
使用for和next遍历数组
注意:对php数组,往往不能单纯使用for循环进行遍历 。
或者说:php中,使用for循环只能循环“下标为连续的纯整数数组”;
结果:
each()函数的使用
each()函数的作用:先取得一个数组的“当前单元”的下标和值(并放入一个数组),然后将指针移到下一个单元 。
使用形式:
$a = each($数组名); //此时$a就是一个数组了
list()“函数”的使用:
list()函数用于一次性取得一个数组中从0开始的数字下标的多个单元的值!
形式:
list($变量1,$变量2,$变量3,.. ) = $数组;
作用:
上述一行代码相当于如下代码:
推荐阅读
- 从南京到大连高铁什么时候开通,从南京高铁南站坐88路公交到南京长途汽车南站需多长时间票价是多
- 綦江一成都高铁,从綦江到四川汶川的火车路线和价钱
- 贵阳到遵义高铁收费,请问我从贵阳北站打的到遵义高速路平正收费站要多少钱谢谢搜
- 广州南到贵港高铁途径站点,从广州到贵港的高铁有车票吗从那个站上车
- 成都到西岭雪山高铁票,从成都火车站到西岭雪山 车费 门票 加路线 谢谢咯
- 景德镇北到长沙高铁,请问长沙至江西的火车从什么时间出发
- 衡阳市高铁时刻表,从衡阳坐高铁去长沙早上8点有车次没票价多少几点到到长沙高
- 从潮州到珠海的高铁时刻表,急急急100分悬赏从潮州到横琴海洋王国最便宜的路线怎么走
- 南宁至深圳高铁用几小时,从南宁坐快车到深圳要多少个小时
- 昆明湖州高铁时间表,从湖州到昆明的高铁那些站点停