数值数组
数值数组存储的每个元素都带有一个数字 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" width=100% 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) //调用方法也很简单只要给目录就好 |