PHP中利用unset()函数删除数组后重建索引

 更新时间:2016年11月25日 15:04  点击:1310
在php中删除一个数组元素我们有很多种方法,但是常用的就是利用unset函数了,但是删除中间的数组元素了我们要怎么重建数组索引呢,下面来参考。
 代码如下 复制代码

$arr = array(1,2,3,4);
unset($arr[1]);
echo $array[1]; // error Undefined offset
print_r($arr);

// 输出如下
/**
Array
(
    [0] => 1
    [2] => 3
    [3] => 4
)
**/
$arr = array_values($arr);
print_r($arr);
// 输出如下
/**
Array
(
    [0] => 1
    [1] => 3
    [2] => 4
)
**/

非空目录就是指目录中还有其它文件或文件夹了,删除原理是:先我们进入目录中找出是否是空目录或文件进行删除,如果不是再进入下级目录直到为空目录然后,然后再返回删除上级,也就是遍历目录进行删除了。

算是一篇超简单的php教程了,也入是入门级的东西了,就不多讲了

代码

 代码如下 复制代码

<?php
// 说明: 删除非空目录的解决方案
function removeDir($dirName)
{
    if(! is_dir($dirName))
    {
        return false;
    }
    $handle = @opendir($dirName);
    while(($file = @readdir($handle)) !== false)
    {
        if($file != '.' && $file != '..')
        {
            $dir = $dirName . '/' . $file;
            is_dir($dir) ? removeDir($dir) : @unlink($dir);
        }
    }
    closedir($handle);
     
    return rmdir($dirName) ;
}
?>

还有很多的方法,这里就不介绍了,其实程序中的 unlink 删除文件,而rmdir删除此目录。

在php要获取文件的修改,创建时间我们可以直接使用filemtime() 函数,它可以返回文件内容上次的修改时间。

若成功,则时间以 Unix 时间戳的方式返回。若失败,则返回 false。

filemtime ( string filename )

返回文件上次被修改的时间,出错时返回 FALSE。时间以 Unix 时间戳的方式返回,可用于 date()。

 代码如下 复制代码

$a=filemtime("log.txt");   

echo "修改时间:".date("Y-m-d H:i:s",$a);

filectime ( string filename )
返回文件上次 inode 被修改的时间,如果出错则返回 FALSE。时间以 Unix 时间戳的方式返回。

 代码如下 复制代码

$a=filectime("log.txt");   

echo "创建时间:".date("Y-m-d H:i:s",$a);

fileatime ( string filename )
返回文件上次被访问的时间,如果出错则返回 FALSE。时间以 Unix 时间戳的方式返回。

 代码如下 复制代码

$a=fileatime("log.txt");   

echo "修改时间:".date("Y-m-d H:i:s",$a)."

在php中如果你想正则来获取字符串中汉字我们先需要知道页面编码,正则匹配中文汉字根据页面编码不同而略有区别:GBK/GB2312编码:[x80-xff>]+ 或 [xa1-xff]+ 而UTF-8编码:[x{4e00}-x{9fa5}]+/u 。

 代码如下 复制代码

echo (mb_eregi("[x80-xff].","中d文") ? "有" : "无") ."汉字";
echo (mb_eregi("^([x80-xff].)+$","中文") ? "全是汉字" : ""); 看一判断全中文字符串函数

以下以PHP为例进行匹配:

 代码如下 复制代码

<?php
   $str = "学习php是一件快乐的事。";
   preg_match_all("/[x80-xff]+/", $str, $match);
   //UTF-8 使用:
   //preg_match_all("/[x{4e00}-x{9fa5}]+/u", $str, $match);
   print_r($match);
?>

输出:

Array
(
    [0] => Array
        (
            [0] => 学习
            [1] => 是一件快乐的事。
        )

)

正则汉字

 代码如下 复制代码

$str = "请问php中的eregi如何匹配汉字";
if (preg_match("/^[".chr(0x80)."-".chr(0xff)."]+$/",$str)) {
   echo "这是一个纯中文字符串";
} else{
   echo "这不是一个纯中文字串";
}
preg_match_all($pat,……)与preg_replace($pat,……)……


preg_match_all("/(汉字)+/ism","我是汉字,看你把我怎么着!",$m_a);
了各个编码的高位与低位的开始与结束,那么自然就可以写出正则,而且直接是十六位的,有啥困难?呵呵。不过要注意,在php里面,表示十六位是用的x


我们还可以用该正则表达式来判断是否是gb2312的汉字

 代码如下 复制代码

<?php
$str = "小小子";
if(preg_match("/^[xb0-xf7][xa0-xfe]+$/",$str)){
print($str."确实全是汉字");
} else {
print($str."这个真tc不全是汉字");
}
?>

本文章来总结介绍关于php中global static和$GLOBALS使用与区别有需要了解他们三区别的朋友可参考参考。

1.global在整个页面起作用。

例1

 代码如下 复制代码

global $var1,$var2;

就是外部变量的同名引用,变量本身的作用范围仍然在函数体内。改变这些变量的值,外部的同名变量自然也改变。但一旦用了&,那么变量将不再是同名引用。

 代码如下 复制代码

<?php
$var1 = 1;$var2 = 2;
function test(){   
global $var1,$var2;
// 作用范围在函数体内   
$var1 = 3;}
test();
echo $var1;
?>

结果是 3。

因为是同名引用

在函数体内定义的PHP Global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,

 代码如下 复制代码

$glpbal $a;  $a=123;   function f()  {  echo $a; //错误,  } 

再看看下面一例

 代码如下 复制代码

function f()  {  global $a;  $a=123;  }   f();  echo $a; //正确,可以使用

2.static只在function和class内起作用。

global和$GLOBALS使用基本相同,但在实际开发中大不相同。
global在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量,一但改变了别名变量的指向地址,就会发生一些意料不到情况,

例如例子1.

 代码如下 复制代码


<?php
/*
*author:ajax123
*qq:283400245
*/
class person{
static$name="ajax123";//static声明静态属性
static$age=25;//static声明静态属性
static$address="北京";//static声明静态属性
function song(){
echo "My name is : ".self::$name."<br>";//类内部:通过通过self 类访问静态属性
echo "I am ".self::$age."<br>";//类内部:通过通过self 类访问静态属性
echo "I live in ".self::$address."<br>";//类内部:通过self 类访问静态属性
}
}
echoperson::$name."<br>";//类外部:通过类名person访问静态属性
echoperson::$age."<br>";//类外部:通过类名person访问静态属性
echoperson::$address."<br>";//类外部:通过类名person访问静态属性
?>

$GLOBALS[]确确实实调用是外部的变量,函数内外会始终保持一致

Example #1 $GLOBALS 范例

 代码如下 复制代码

<?php
function test() {
    $foo = "local variable";

    echo '$foo in global scope: ' . $GLOBALS["foo"] . "n";
    echo '$foo in current scope: ' . $foo . "n";
}

$foo = "Example content";
test();
?>

以上例程的输出类似于:

$foo in global scope: Example content
$foo in current scope: local variable

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • php正确禁用eval函数与误区介绍

    eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • php数组操作 键名比较 差集 交集赋值

    本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
  • C#二维数组基本用法实例

    这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 删除条目时弹出的确认对话框

    复制代码 代码如下: <td> <a href="/member/life/edit_ppt/<?php echo $v->id;?>" class="btn">编辑</a> <a href="javascript:;" onclick="if(confirm('您确定删除这条记录?')){location.href='/member/life/d...2014-06-07
  • C#数组的常用操作方法小结

    Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
  • php curl模拟post请求和提交多维数组的示例代码

    下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <&#63;php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • C++中 Sort函数详细解析

    这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
  • PHP用strstr()函数阻止垃圾评论(通过判断a标记)

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
  • PHP函数分享之curl方式取得数据、模拟登陆、POST数据

    废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07
  • C# 拷贝数组的几种方法(总结)

    下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • php中的foreach函数的2种用法

    Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28