php 数组的指针操作实现代码

/**
* 将数组的内部指针倒回一位
* @param array &$arr
* @return mixed 返回前一个单元的值,当没有更多单元时返回 FALSE
* 如果数组包含空的单元,或者单元的值是 0 则本函数碰到这些单元也返回 FALSE
* 要正确遍历可能含有空单元或者单元值为 0 的数组,参见 each() 函数
*/
mixed prev(array &$arr);
<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = next($transport); // $mode = 'car';
$mode = prev($transport); // $mode = 'bike';
$mode = end($transport); // $mode = 'plane';
$mode = reset($transport) ;//$mode = 'foot';
?>

array("key"=>"value");建立数组
//显示数组
print_r($array);
//使用compact()函数新建数组,并把参数做为新数组的单元;
$newArray = compact("red","green","yellow","blue","array");
//使用extract()函数把数组中的单元转换为变量
extract($exArray);
echo "$key1 $key2 $key3 $key4 $key5";

※检查值、键
array_key_exists($key,$array);//检查数组键
in_array($value,$array);//检查值于数组

※获取值
//使用array_values()取得数组的值
$carValues = array_values($car);
//取出数组的键名
$twoKeys = array_keys($two);
key($array);//输出当前单元的键名
//数组定义后,使用current()取得当前单元的值
$red = current($array);
list($red,$green) = $array;//把数组中的值赋与变量,$array = array("红色","绿色");
each($two);//返回数组中当前单元的键和值

※遍历数组
foreach($two as $subArray);//遍历数组
while(list($key,$value) = each($array)){
echo "$key=>$value,";//使用each遍历数组
}

※填充数组
//向左、右填充数组
array_pad($array,+3,"shuzhi");//2参数为正从左往右填充,数值大于单元数时才填充
$array1 = array_fill(5,5,"test");//使用array_fill()填充这个数组的值,值为test,从第5个单元开始填充,一共填充5个单元
//填充数组键名
$keys = array('string', 5, 10, 'str');
$array3 = array_fill_keys($keys,"数组值");
//使用array_filp()函数交换键名与值
$speed = array_flip($speed);
//使用array_splice()函数替换第6个单元的值为7
$output = array_splice($input,6,0,7);
//使用array_splice()函数删除数组单元,只保留前5个单元
$output = array_splice($input,5);
$array1 = range(10,100,10); //使用range()函数的第三个参数,设置单元之间的步进值

※排序
shuffle($array);//将数组顺序打乱
//使用array_multisort()对三个数组排序
array_multisort($sort1,$sort2,$sort3);
//把这个数组进行排序,并保持索引关系
asort($array);
//把测试数组进行逆向排序,并保持索引关系
arsort($array);
//使用ksort()对数组按键名排序
ksort($array);
//使用krsort()函数按键名逆向排序
krsort($array);
//使用sort()对测试数组进行排序[以键名排列]
sort($array);
//使用natsort()排序[自然排序,以数值排列]对单元数值大小写敏感
natsort($array);
//使用natcasesort()函数排序[自然排序]但是忽略数值大小写
natcasesort($array);
//使用array_reverse()函数排序,数组单元按相反排列
$newArray = array_reverse($array,TRUE);//TRUE设时保留原键名

※交集、差集
//使用array_diff()计算三个数组的差集[对数组数值比较]
$result = array_diff($dog1,$dog2,$dog3);
//使用array_diff_assoc()计算三个数组的差集[对数值和键名比较]
$result = array_diff_assoc($dog1,$dog2,$dog3);
//使用array_diff_key()计算三个数组的差集[比较键名]
$result = array_diff_key($dog1,$dog2,$dog3);
//使用array_intersect()计算三个数组的交集[对数组数值比较]
$result = array_intersect($dog1,$dog2,$dog3);
//使用array_intersect_assoc()计算三个数组的交集[对数值和键名比较]
$result = array_intersect_assoc($dog1,$dog2,$dog3);
//使用array_intersect_key()计算三个数组的交集[比较键名]
$result = array_intersect_key($dog1,$dog2,$dog3);

※合并数组
//使用array_merge()函数合并数组
$result = array_merge($array1,$array2,$array3,$array4,$array5);
array_rand($input,10);//随机取出10个单元
count($array,COUNT_RECURSIVE);//显示数组单元数目,2参数只可为1或者COUNT_RECURSIVE,有时可遍历多维数组

※出入栈
//数组出栈,后进先出,数组最后一个单元弹出
array_pop($array);
//数组入栈,将7,8两个数值添加到数组尾部
array_push($array,7,8);
//将数组开头单元移出数组
array_shift($array);
//将7,8添加入数组开头
array_unshift($array,7,8);

(0)

相关推荐

  • php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位

    each()定义和用法 each() 函数生成一个由数组当前内部指针所指向的元素的键名和键值组成的数组,并把内部指针向前移动. 返回的数组中包括的四个元素:键名为 0,1,key 和 value.单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据. 如果内部指针越过了数组范围,本函数将返回 FALSE. 语法 each(array)参数 描述 array 必需.规定要使用的数组. 例子 1 复制代码 代码如下: <?php $people = array("Pete

  • php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值

    定义和用法 end() 函数将数组内部指针指向最后一个元素,并返回该元素的值(如果成功). 语法 end(array)参数 描述 array 必需.规定要使用的数组. 例子 复制代码 代码如下: <?php $people = array("Peter", "Joe", "Glenn", "Cleveland"); echo current($people) . "<br />"; ech

  • PHP中使用数组指针函数操作数组示例

    数组的内部指针是数组内部的组织机制,指向一个数组中的某个元素.默认是指向数组中第一个元素通过移动或改变指针的位置,可以访问数组中的任意元素.对于数组指针的控制PHP提供了以下几个内建函数可以利用. ★current():取得目前指针位置的内容资料. ★key():读取目前指针所指向资料的索引值(键值). ★next():将数组中的内部指针移动到下一个单元. ★prev():将数组的内部指针倒回一位. ★end():将数组的内部指针指向最后一个元素. ★reset():将目前指针无条件移至第一个索

  • php each 返回数组中当前的键值对并将数组指针向前移动一步实例

    each函数返回数组中当前的键/值对并将数组指针向前移动一步 基本语法 array each ( array &$array ) 在执行 each() 之后,数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元.如果要再用 each 遍历数组,必须使用 reset() . 参数介绍: 参数 描述 array 必需.规定要使用的数组. each() 函数生成一个由数组当前内部指针所指向的元素的键名和键值组成的数组,并把内部指针向前移动. 返回值: 返回 array 数组中当前指

  • php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值

    next() 定义和用法 next() 函数把指向当前元素的指针移动到下一个元素的位置,并返回该元素的值. 如果内部指针已经超过数组的最后一个元素,函数返回 false. 语法 next(array)参数 描述 array 必需.规定要使用的数组. 说明 next() 和 current() 的行为类似,只有一点区别,在返回值之前将内部指针向前移动一位.这意味着它返回的是下一个数组单元的值并将数组指针向前移动了一位.如果移动指针的结果超出了数组单元的末端,则 next() 返回 FALSE. 注

  • php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值

    prev() 定义和用法 prev() 函数把指向当前元素的指针移动到上一个元素的位置,并返回该元素值. 如果内部指针已经超过数组的第一个元素之前,函数返回 false. 语法 prev(array)参数 描述 array 必需.规定要使用的数组. 说明 prev() 和 next() 的行为类似,不过它将内部指针倒回一位而不是前移一位. 注意:如果数组包含空的单元,或者单元的值是 0 则该函数碰到这些单元也返回 FALSE.要正确遍历可能含有空单元或者单元值为 0 的数组,请参见 each()

  • 简单了解PHP编程中数组的指针的使用

    要使用数组中的元素,就需要数组的定位.定位的实现需要借助数组指针来完成.PHP中有很多函数可以移动数组指针.下面将给大家介绍几个. 将指针移动到下一个数组位置next() next()函数返回紧接着放在当前数组指针下一个位置的数组值.其形式如下: mixed next(array array) 以下是一个例子: $fruits = array("apple", "banana", "orange", "pear"); echo

  • php数组指针操作详解

    数组指针的操作: 移动数组指针的操作: Next() 向下 同时会获得当前元素的值. Prev() 向上同时会获得当前元素的值. End() 移动到最后一个元素单元 获得最后一个元素的值 Reset() 移动到第一个单元 获得第一个元素的值. 如果移动不成功,返回false. 参数都为需要操作的数组,并且是引用传递. 获得指针指向的元素的信息: Key();//获得当前数组指针指向的元素下标 Current();//获得当前数组指针指向的元素 只获取数据 不移动指针 还有一个混合的操作: 即可以

  • PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)

    一.数组遍历的3个方法介绍 1. foreach() foreach()是一个用来遍历数组中数据的最简单有效的方法. #example1: 复制代码 代码如下: <?php $colors= array('red','blue','green','yellow'); foreach ($colorsas$color){ echo "Do you like $color? <br />"; } ?> 显示结果: Do you like red? Do you li

  • 约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数

    来看看这个问题的详细描述: view sourceprint?一群猴子排成一圈,按 1,2,...,n 依次编号.然后从第 1 只开始数,数到第 m 只,把它踢出圈,从它后面再开始数, 再数到第 m 只,在把它踢出去...,如此不停的进行下去, 直到最后只剩下一只猴子为止,那只猴子就叫做大王.要求编程模拟此过程,输入 m.n, 输出最后那个大王的编号. 刚开始构思的时候想使用 PHP 数组来实现(当然最后还是使用的数组),然后模拟一个数组的内部指针,结果发现想模拟一个"数组指针"不是那

随机推荐