php中数值数组、关联数组、多维数组用法
数值数组
数值数组存储的每个元素都带有一个数字 ID 键。
可以使用不同的方法来创建数值数组:
例子 1
在这个例子中,会自动分配 ID 键:
代码如下 | 复制代码 |
$names = array("Peter","Quagmire","Joe"); |
例子 2
在这个例子中,我们人工分配的 ID 键:
代码如下 | 复制代码 |
$names[0] = "Peter"; <?php $names[0] = "Peter"; echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors"; |
数组排序
(1)sort(array $array[,int sorttype])
array 表示一个数组
<TABLE class=dataintable><TBODY><TR><TD> sorttype 取值:</TD><TD><P> SORT_REGULAR - 默认。以它们原来的类型进行处理(不改变类型)。 </P><P> SORT_NUMERIC - 把值作为数字来处理 </P><P> SORT_STRING - 把值作为字符串来处理 </P><P> SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置<SUP style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif">*</SUP>。 </P></TD></TR></TBODY></TABLE>
(2)bool rsort(array $array[,sorttype])函数 逆向排序(值逆向)
sorttype 同上
(3)bool shuffle()函数 随机排序
(4)array array_reverse (array $array[,bool preserve_keys]) 反向排列
preserve_keys 为true时 保留原来的键名
(5)array array_merge()合并数组
(6)array array_slice(array $array,int offset[,int length[,boolpreserve_keys ])
offset非负,这array中的偏移变量从此开始,为负时从末端开始
length为正时,则表示序列中有很多单元,为负时表示从末端开始第几个数处结束,若省略则从offset开始一直到最后
boolpreserve_keys 同上
数组循环输出
代码如下 | 复制代码 |
<PRE class="brush:php; toolbar: true; auto-links: true;"><pre> <?php $shuzu=array('a'=>"wo",'b'=>"ni",'c'=>"ta",'d'=>"php",'e'=>"mysql"); echo "使用foreach函数遍历数组"; echo "<br/>$nbsp;<br/>"; foreach($shuzu as $key=>$value) { echo "$key 代表: $value"; echo "<br/>$nbsp;<br/>"; } ?> </pre></PRE> |
关联数组
关联数组,它的每个 ID 键都关联一个值。
在存储有关具体命名的值的数据时,使用数值数组不是最好的做法。
通过关联数组,我们可以把值作为键,并向它们赋值。
例子 1
在本例中,我们使用一个数组把年龄分配给不同的人:
代码如下 | 复制代码 |
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34); |
例子 2
本例与例子 1 相同,不过展示了另一种创建数组的方法:
代码如下 | 复制代码 |
$ages['Peter'] = "32"; $ages['Peter'] = "32"; echo "Peter is " . $ages['Peter'] . " years old."; |
关联数组判断为空的代码,然后我们详细讲讲关于数据空的处理。
代码如下 | 复制代码 |
<?php教程 $array = array(0); if(empty($array)){ echo "我空了n"; }else{ echo "我不空啊n"; } $array['array']='我是数组'; print_r($array); $array['array1']='我是数组1'; print_r($array); unset($array['array1']); print_r($array); ?> |
更多详细内容请查看:http://www.111cn.net/phper/php/39841.htm
遍历
遍历用户列表的时候,只需直接用 isset 查询那个用户名是否存在即可。
PHP 版代码:
代码如下 | 复制代码 |
<?php foreach($arrayM as $keyM => $nameM) { 多维 |
数组
在多维数组中,主数组中的每个元素也是一个数组。在子数组中的每个元素也可以是数组,以此类推。
例子 1
在本例中,我们创建了一个带有自动分配的 ID 键的多维数组:
代码如下 | 复制代码 |
$families = array ( "Griffin"=>array ( "Peter", "Lois", "Megan" ), "Quagmire"=>array ( "Glenn" ), "Brown"=>array ( "Cleveland", "Loretta", "Junior" ) );如果输出这个数组的话,应该类似这样: Array ( [Griffin] => Array ( [0] => Peter [1] => Lois [2] => Megan ) [Quagmire] => Array ( [0] => Glenn ) [Brown] => Array ( [0] => Cleveland [1] => Loretta [2] => Junior ) ) |
例子 2
让我们试着显示上面的数组中的一个单一的值:
代码如下 | 复制代码 |
echo "Is " . $families['Griffin'][2] . " a part of the Griffin family?"; 以上代码的输出: Is Megan a part of the Griffin family? |
数组排序
代码如下 | 复制代码 |
<?php |
更多array_multisort()可参考http://www.111cn.net/phper/php/42696.htm
本文章介绍了关于php通过调用腾讯的API接口返回所有在城市名称有需要了的朋友可参考一下。代码如下 | 复制代码 |
<?php /* 调用腾讯的API接口 返回结果 var IPData = new Array("114.238.55.147","","江苏省","淮安市"); 0 为 IP地址 1 为 null 2 为 省份 3 为 城市 */ function get_ip_place(){ $ip=file_get_contents("http://fw.qq.com/ipaddress"); $ip=str_replace('"',' ',$ip); $ip2=explode("(",$ip); $a=substr($ip2[1],0,-2); $b=explode(",",$a); return $b; } $ip=get_ip_place(); print_r($ip); print_r($ip[0]); // 这个就是你当前外网IP地址 print_r($ip[2]); // 这个就是你所在的省份 print_r($ip[3]); //这个就是你所在的城市了 ?> |
我们先来看看效果图,这是我网页的一部分,也就是实现这一功能的框架代码,显示评论的页面用IFRAME(隐藏帧)调用,待信息发送完之后,只刷新IFRAME那一块就可以看到自己发的评论,从发送到查看,整个过程都不需要刷新整个页面。
1.点击“提交”,开始发送数据
2. 数据发送成功
3. 刷新评论列表
好了,现在我们开始来做代码。
代码如下 | 复制代码 |
var http_request=false; |
有一点ajax基础的通过注释,应该都可以看懂这段代码,我们可以看出,当我们开始发表评论的时候,在一个特定位置先显示:正在发送数据...。接着调用回调函数处理数据。那么请看服务器端的代码
代码如下 | 复制代码 |
<?php header('Content-Type:text/html;charset=GB2312');//避免输出中文乱码,linux下不需要 $username=trim($_GET['username']); $newfourm=trim($_GET['newfourm']); $id=$_GET['id']; $time=date("Y-m-d"); include('inc/config.inc.php'); include('inc/dbclass.php'); $db=new db;//从数据库操作类生成实例 $db->mysql($dbhost,$dbuser,$dbpassword,$dbname);//调用连接参数函数 $db->createcon();//调用创建连接函数 $addsql="insert into cr_fourm values(0,'$newfourm','$username','$time',$id)"; $db->query($addsql); echo"<img src=images/pass.gif> <font color=red>评论已成功发表!</font>"; //echo $addsql; $db->close();//关闭数据库连接 ?> |
由于jsvascript采用UTF8编码,在windows下采用ajax回送服务器的返回信息就会出现乱码,因此在win下应用开头第一句是非常必要的。中间那段两个包含文件是数据库操作类和数据库配置信息,我个人习惯将基本的数据库操作写成一个类,方便调用。到这里相信大家已经基本明白这个程序的工作原理了,在给出页面的HTML代码
代码如下 | 复制代码 |
<table width="100%" border="0" cellspacing="0" cellpadding="0"> |
PHP+Ajax实现页面无刷新发表评论,希望对初学ajax的PHPer有所帮助。 我们需要一个基本的ajax开发框架,文件ajax.js就包含了这个框架,ajax.js文件我们第一步就有讲述了,只要大家按上面的方法一步步来操作就可以实现无刷新发评论了
在php中要实现文件或图片上传相比于其它的语言要方便的多,在php中只要利用move_uploaded_file函数就可以快速实现文件上传了。我们先来看一下项目结构图与数据库结构图吧
项目结构:
运行效果;
up.html 简单的上传表单文件
代码如下 | 复制代码 |
<form action="up.php" enctype="multipart/form-data" method="post" |
up.php 用来处理图片文件上传的程序
代码如下 | 复制代码 |
<?php |
总结分析
在php图片上传中我们主要是通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。
第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:
$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码
只要你了解了上面这些参数就可以完全的在php中实现文件上传了哦,因为上面我限制了
代码如下 | 复制代码 |
switch ($type){ case 'image/pjpeg':$okType=true; break; case 'image/jpeg':$okType=true; break; case 'image/gif':$okType=true; break; case 'image/png':$okType=true; break; } |
只能上传jpg,gif,png,jpeg四种格式的图片文件了,所以说这里是图片上传实现了。
php中mkdir创建多级目录
代码如下 | 复制代码 |
function mkdirs($dir) { if(!is_dir($dir)) { if(!mkdirs(dirname($dir))) { return false; } if(!mkdir($dir,0777)) { return false; } } return true; } |
调用方法
mkdirs('div/css/layout');
创建多级目录更标准的方法
代码如下 | 复制代码 |
//检查并创建多级目录 |
删除多级目录方法
在winxp下测试成功,只要php文件编码为gb2312,文件名随意,应该把文件名改为编码为gb2312,就行,没测
代码如下 | 复制代码 |
<?php |
递归删除多级目录
同样的思路,php用rmdir和unlink递归删除多级目录的代码:
代码如下 | 复制代码 |
function rmdirs($dir) //调用方法也很简单只要给目录就好 |
相关文章
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
- 这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
- 下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <?php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
- 下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 遇到这个...2014-06-07
- 这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了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
- 1.前言 昨天碰到一道关于如何解决有序数组的连接问题,这是一个很常见的问题。但是这里要考虑到代码的效率问题,因为要连接的数组都是有序的,这是一个非常重要的前提条件。2.简单但效率不高的算法 我首先想到的是使用...2013-10-04
- 今天小编就为大家分享一篇python 实现将Numpy数组保存为图像,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)
在工作中经常遇到C#数组、ArrayList、List、Dictionary存取数据,但是该选择哪种类型进行存储数据呢?很迷茫,今天小编抽空给大家整理下这方面的内容,需要的朋友参考下吧...2020-06-25- 这篇文章主要介绍了C#中List和数组之间转换的方法,涉及比较简单的转换技巧,需要的朋友可以参考下...2020-06-25
- 下面小编就为大家带来一篇javascript中去除数组重复元素的实现方法【实例】。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧...2016-04-16
- 下面小编就为大家带来一篇Perl与JS的对比分析(数组、哈希)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-29