php若干单维数组遍历方法的比较
<?php
//a
$arr=array('a'=>'abc','b'=>123,'c'=>true);
//b
//$arr=range('a','d');
//1
for($i=0;$i<sizeof($arr);$i++)
echo $arr[$i].', ';
echo '<br />';
//2
foreach($arr as $key)
echo "$key, ";
echo '<br />';
//3
foreach($arr as $key=>$val)
echo "$key-$val, ";
echo '<br />';
//4
reset($arr);
while($item=each($arr)){
echo $item['key'].'-'.$item['value'].', ';
}
echo '<br />';
//5
reset($arr);
while(list($key,$val)=each($arr)){
echo "$key-$val, ";
}
echo '<br />';
?>
使用语句a $arr=array('a'=>'abc','b'=>123,'c'=>true); 对$arr进行初始化得到数字索引数组,输出如下:
, , ,
abc, 123, 1,
a-abc, b-123, c-1,
a-abc, b-123, c-1,
a-abc, b-123, c-1, 使用语句b $arr=range('a','d'); 对$arr进行初始化得到关联数组,输出如下:
a, b, c, d,
a, b, c, d,
0-a, 1-b, 2-c, 3-d,
0-a, 1-b, 2-c, 3-d,
0-a, 1-b, 2-c, 3-d, for循环只对数字索引有限;for和foreach遍历结束后不需要对数据进行reset()操作即可供下次遍历,而each方法则需要。
相关推荐
-
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
array_intersect() 定义和用法 array_intersect() 函数返回两个或多个数组的交集数组. 结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变. 注释:仅有值用于比较. 语法 array_intersect(array1,array2,array3...) 参数 描述 array1 必需.与其他数组进行比较的第一个数组. array2 必需.与第一个数组进行比较的数组. array3 可选.与第一个数组进行比较的数组.可以有多个.例子
-
PHP读取txt文件的内容并赋值给数组的代码
2010-12-15.txt的文件内容如下: 复制代码 代码如下: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 T01 T02 T03 T04 T05 T06 T07 T08 T09 T10 T11 T12 T13 T14 T15 T16 思路如下:使用file_get_contents()获取txt文件的内容,然后通过explode()把获得的字符串转化为数组.获得数组长度可以使用count()
-
PHP数组对比函数,存在交集则返回真,否则返回假
复制代码 代码如下: <?php $array1 = array('a', 'b', 'c', 'd'); $array2 = array('a', 'c'); $array3 = array_intersect($array1, $array2); if($array3) { echo '有交集'; } ?>
-
php 归并排序 数组交集
复制代码 代码如下: $a=array('1','2','3','4','22'); $b=array('1','3','4','11','22','23'); f($a, $b, 5, 6, $t); print_r($t); function f(&$a, &$b, $n, $m, &$t){ $i=0;$j=0; while($i<$n && $j<$m){ if($a[$i]==$b[$j]){ echo $a[$i]." "
-
PHP数组交集的优化代码分析
不过由于手机的参数多,且不同的手机其参数差异大,所以参数表结构通常是纵表(一个参数是一行),而不是横表(一个参数是一列),此时使用若干参数来取结果,通常就是把每个单独参数来取结果,再一起取交集. 假定每个参数会包含一千个左右的唯一结果(id int),以此为前提来模拟生成一些数据: 复制代码 代码如下: <?php $rand = function() { $result = array(); for ($i = 0; $i < 1000; null) { $value = mt_rand(1
-
php比较多维数组中值的大小排序实现代码
如果值没有重复的情况,可以先用array_flip()来交换键和值,然后krsort(),最后再array_flip()交换回来,就可以比较大小了.如果要截取数组,可用array_slice(). 如果有值重复的情况,就要用到一些排序算法了,不过php有很强大的函数uasort(),使用自定义的比较函数对数组中的值进行排序并保持索引关联,usort()则会重建索引. 复制代码 代码如下: function cmp($a, $b){ if ($a["vote_num"] == $b[&q
-
php数组操作之键名比较与差集、交集赋值的方法
本文实例讲述了php数组操作之键名比较与差集.交集赋值的方法.分享给大家供大家参考.具体方法如下: 该实例主要实现对数组的各种常见操作.如对键名比较计算数组的差集,计算差集,给指定数组中插入一个元素,反转数组与交集赋值新的数组等. 具体代码如下: 复制代码 代码如下: //定义回调函数 function key_compare_func($key1,$key2) { if($key1==$key2) //如果两参数相等 return 0; //返回0
-
PHP两种去掉数组重复值的方法比较
去除一个数组中的重复值,可以使用foreach方法,也可以使用array_unique方法,下面的代码两种方法都使用了. <?php $arrF = array(); $arrS = array(); $intTotal = 100; $intRand = 10; for($i=0; $i < $intTotal; $i++) { $arrF[] = rand(1, $intRand); $arrS[] = rand(1, $intRand); } $arrT = array_merge($a
-
php中给js数组赋值方法
因为接口方的要求,用js中处理数据,所以需要php程序从数据库取出数值后赋值给js数组.一直没有找到很好的办法,因为PHP数组的数据编码和JS 数组的编码格式不一样,不能直接输出. 在网上搜索一通后,找到的解决的方法: PHP函数库提供了编/解码JSON的函数:json_encode()和json_decode(),可以比较方便的传递数组或对象给javascript.注意:PHP 5.2以上才绑定了JSON扩展. 在php如下写: 复制代码 代码如下: $arr = array('1',arra
-
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
返回一个交集共有元素的数组(只是数组值得比较).array_intersect_assoc()函数是将键值和值绑定,一起比较交集部分.array_intersect_key()函数是将两个数组的键值进行比较,返回键值交集的数组.但实际应用中也遇到了一些小问题,正如下: 实例: 复制代码 代码如下: <?PHP $array = array("red"=>"Red","green"=>"red4","
随机推荐
- java实现jdbc批量插入数据
- MongoDB 3.4 安装以 Windows 服务方式运行的详细步骤
- JQuery弹出层示例可自定义
- Extjs单独定义各组件的实例代码
- react native带索引的城市列表组件的实例代码
- 利用PHP扩展vld查看PHP opcode操作步骤
- PHP设计模式 注册表模式(多个类的注册)
- Windows下MySQL 5.6安装及配置详细图解(大图版)
- JavaScript使用HTML5的window.postMessage实现跨域通信例子
- 如何简单地上传文件?
- js中的onchange和onpropertychange (onchange无效的解决方法)
- jquery ztree实现树的搜索功能
- 禁止QQ上网的vbs代码
- MySql超长自动截断实例详解
- JQuery中DOM事件冒泡实例分析
- onpropertypchange
- Java continue break制作简单聊天室程序
- android获取照片的快照 思路及实现方法
- map实现按value升序排序
- C#获取指定PDF文件页数的方法