PHP判断数组(多维数组)值是否为空
//此处,$res为数组,但是数组的维数不定,此时不能用count函数
代码如下 | 复制代码 |
//array_filter() 将删除 $res 中所有等值为 FALSE 的条目 if(!empty($filter_res)) |
PHP判断数组为空之一、for循环
最简单也是最直接的方法,用for循环来遍历数组。对于已知维数的数组可以判断,但如果是未知的多维数组,该怎么办?
(仅针对于二维数组)
代码如下 | 复制代码 |
<?php count($arr),size($arr);
|
多维数组值是否为空
PHP判断单值是否为空使用最为常用的empty即可,但是,在判断有键值的数组或多维数组时就会出现困难,以下就是PHP中判断数组(多维)数值是否为空的函数:
代码如下 | 复制代码 |
class Test{ |
先来看实例
代码如下 | 复制代码 |
<?php |
上面的代码完全可以工作,但实际应用中漏洞百出,让我们逐步来完善之首先,上载的文件必须有一个固定的目录保存,我们在这里用一个$UploadPath变量保存之,如$UploadPath = "/home/flier/upload/";
或复杂一点的自动定位,如
代码如下 | 复制代码 |
$UploadPath = AddSlashes(dirname($PATH_TRANSLATED))."\upload\"; |
$PATH_TRANSLATED顾名思义是当前传送目录
我们假定以其一个名为upload的子目录来保存上载的文件。dirname函数返回其目录名,然后加上子目录名然后用一个变量$FileName保存完整的上载后文件名和路径
$FileName = $UploadPath.$UploadFile_name;
其次,我们还想让用户得知上载文件的简要信息,如上载文件的大小if($UploadFile_size <1024) { //上载文件大小
代码如下 | 复制代码 |
$FileSize = (string)$UploadFile_size . "字节"; } elseif($UploadFile_size <(1024 * 1024)) { $FileSize = number_format((double)($UploadFile_size / 1024), 1) . " KB"; } else{ $FileSize = number_format((double)($UploadFile_size / (1024 * 1024)), 1) . " MB"; } |
number_format函数起到格式化输出的作用,具体用法请参照手册。下一步我们必须考虑到文件已经存在和拷贝操作失败的情况,并提供相应的提示信息if(!file_exists($FileName)){
代码如下 | 复制代码 |
if(copy($UploadFile,$FileName)) { echo "文件 $UploadFile_name($FileSize)上载成功!"; } else { echo "文件 $UploadFile_name上载失败!"; } unlink($UploadFile); } else { echo "文件 $UploadFile_name已经存在!"; } |
然后我们应该考虑到大文件上载时容易出现超时的情况,可以用set_time_limit($TimeLimit);加大超时限制时间。
最后,把截面和实现代码综合到一个单独的文件中,为了实现这个想法,我们通过在 form中添加一个隐含值<INPUT TYPE = "hidden" NAME = "UploadAction" VALUE = "1">指出当前的状态(界面或实现),以便区分对待
下面程序可用于实例应用
代码如下 | 复制代码 |
function FileUpload( $resourceType, $currentFolder, $sCommand ) if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) ) $oFile = $_FILES['NewFile'] ; // Map the virtual path to the local server path. // Get the uploaded file name. $sOriginalFileName = $sFileName ; // Get the extension. if ( isset( $Config['SecureImageUploads'] ) ) if ( isset( $Config['HtmlExtensions'] ) ) // Check if it is an allowed extension. while ( true ) if ( is_file( $sFilePath ) ) if ( is_file( $sFilePath ) ) $permissions = 0777; if ( isset( $Config['ChmodOnUpload'] ) && $Config['ChmodOnUpload'] ) $oldumask = umask(0) ; break ; if ( file_exists( $sFilePath ) )
SendUploadResults( $sErrorNumber, $sFileUrl, $sFileName ) ; exit ; |
php实际应用中一般都是用isset()函数来做判断的。
示例如下:
代码如下 | 复制代码 |
if( isset($_GET[’name’]) )//判断传来的值是否为空。 |
使用说明:
1、空值、0、false的赋值结果均被isset判为 TRUE
2、NULL将被isset判为 FALSE
3、isset()同样适用于数组元素和对象元素的检查。若数组或对象实例未被定义,则检测其中的数组元素/对象元素将被返回false。
empty功能:检测变量是否为“空”
很简单的,给一个例子。
方法一:
代码如下 | 复制代码 |
$sql = "select * form abc" $result = mysql_query($sql); $row = mysql_fetch_array($result); if(empty($row))//开始判断是够为空 { echo "null"; } else { echo "not null"; } |
方法二:
代码如下 | 复制代码 |
|
其实mysql_fetch_array函数在使用的时候如果表是空表的话,就会返回false,这个时候$row自然没有赋
说明:值为 0 或 false 或 空字符串”" 或 null的变量、空数组、都将判断为 null
注意:与empty的显著不同就是:变量未初始化时 var == null 将会报错。
代码如下 | 复制代码 |
$a = 0; $b = array(); if ($a == null) echo '$a 为空' . ""; if ($b == null) echo '$b 为空' . ""; if ($c == null) echo '$b 为空' . ""; // 显示结果为 // $a 为空 // $b 为空 // Undefined variable: c |
4. is_null功能:检测变量是否为“null”
说明:当变量被赋值为“null”时,检测结果为true
注意1:null不区分大小写:$a = null; $a = NULL 没有任何区别
注意2:仅在变量的值为“null”时,检测结果才为true,0、空字符串、false、空数组都检测为false
注意3:变量未初始化时,程序将会报错
代码如下 | 复制代码 |
$a = null; |
获取关键字
代码如下 | 复制代码 |
|
获取标题
代码如下 | 复制代码 |
function get_title($html) |
获取网页描述description
代码如下 | 复制代码 |
function get_description($html) |
删除文件
代码如下 | 复制代码 |
file_delete = "home/meeta/my.php"; if (unlink($file_delete)) { |
下面加了判断文件是否存在
代码如下 | 复制代码 |
$myfile = "./test1.txt"; |
删除指定文件夹根目录指定日期之前文件
代码如下 | 复制代码 |
<?php |
相关文章
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
- 本篇文章主要分享了通过window.navigator来判断浏览器及其版本信息的实例代码。具有一定的参考价值,下面跟着小编一起来看下吧...2017-01-23
- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
- 这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <?php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
- Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
- 使用 conditional comment 来判断 IE 的版本。嗯,是早早有人提出,但没有认真看代码。昨天刚好在看 CSS3 PIE 的时候看到,觉得是不是不靠谱。今天看到 Paul Irish 也提起,那么,推荐一下吧。这是作者博客上写的:复制代码 代码...2014-05-31
- 下面小编就为大家分享一篇c# 判断是否为空然后赋值的4种实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
- 下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 遇到这个...2014-06-07
- 这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
- 具体详情请看下文小编给大家带来的知识点。同编写程序类似,存储过程中也有对应的条件判断,功能类似于if、switch。在MySql里面对应的是IF和CASE1、IF判断IF判断的格式是这样的:IF expression THEN commands [ELSEIF ex...2015-10-21
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
废话不多说了,直接给大家贴代码了。<?php class test{} $a1 = null; $a2 = ""; //$a3 = $a4 = 0; $a5 = '0'; $a6 = false; $a7 = array(); //var $a8; $a9 = new test(); for ($i=1; $i <=9 ; $i++) {...2015-11-24- 这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
- 这篇文章主要介绍了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
- 这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 在php中为我们提供了一个函数var_export 他可以直接将php代码入到一个文件中哦。 代码如下 复制代码 var_export($times,true);后面不加tru...2016-11-25