php删除数组元素方法总结

 更新时间:2016年11月25日 15:04  点击:1899
在php开发时我们经常会碰到要删除数组中指定指定内容,但数组是特殊变量我们不能直接利用replace进行替换的,需要一些方法来操作,下面我来给大家介绍操作办法。

如果我们知道数组元素的名字这个就好办了

按键名来删除数组中指定数组元素

 代码如下 复制代码

$barray = array('a'=>1,'b'=>2,'wod'=>3,'c'=>4,'abc'=>5);
$del ='b';
unset($barray[$del]);//结果为


Array
(
    [a] => 1
    [wod] => 3
    [c] => 4
    [abc] => 5
)


如果有多个数组要同时删除,上面办法是解决不了,我们可以利用array_diff函数来操作

 代码如下 复制代码

$a1=array("Cat","Dog","Horse",'dff','dfdf','www');
$a2=array("dff","Horse","Dog");
$a1 = array_diff($a1,$a2);
sort($a1);
print_r($a1);

Array
(
    [0] => Cat
    [1] => dfdf
    [2] => www
)

例2

array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false

 代码如下 复制代码


$array = array('1', '2', '3', '4', '5');

$del_value = 3;
unset($array[array_search($del_value , $array)]);//利用unset删除这个元素

print_r($array);

输出

array('1', '2', '4', '5');

array_filter()
调用方式:array_filter($array)
参数说明:$array 是操作的对象,我们将删除其中的空元素

实例:

 代码如下 复制代码

<?php
    $array = ('a' => "abc", 'b' => "bcd",'c' =>"cde",'d' =>"def",'e'=>"");
    array_filter($array);
    echo "<pre>";
    print_r($array);
?>

结果:

Array (

     [a] => abc

     [b] => bcd

     [c] => cde

    [d] => def

   )

上面人方法删除的都会不会重建索引的,下面我来给大家介绍一个删除数组元素并重建数组索引的方法

 代码如下 复制代码

function array_remove(&$arr,$offset){ 
    array_splice($arr,$offset,1); 


$a = array('a','b','c','d'); 
array_remove($a,2); 
print_r($a);

在php中header函数的使用很大,header不但可以向客户端发送原始的 HTTP 报头信息,同时还可以直接实现文件下载操作,接下来小编给大家介绍欢迎各位朋友参考。

header函数最常用的不是用于下载而是用于发送http类的

跳转

它会执行最后一个,不过是有条件的,例如:

 代码如下 复制代码

header('Location:http://www.111cn.net");
header('Location:http://www.g.cn');
header('Location:http://www.baidu.com');

这个就会跳到百度

header('Location:http://www.111cn.net');echo '烈火网;
header('Location:http://www.g.cn');
header('Location:http://www.baidu.com');

这个就会跳到google


发送状态

输出状态值到浏览器,主要用于访问权限控制

 代码如下 复制代码

<?php
header('HTTP/1.1 401 Unauthorized');
header('status: 401 Unauthorized');
?>

比如要限制一个用户不能访问该页,则可设置状态为404,如下所示,这样浏览器就显示为即该页不存在

 代码如下 复制代码

<?php
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
?>

下载


 代码如下 复制代码

<?php
$filename = '路径+实际文件名';
//文件的类型
header('Content-type: application/pdf');
//下载显示的名字
header('Content-Disposition: attachment; filename="保存时的文件名.pdf"');
readfile("$filename");
exit();
?>

header函数进行相应的转化,

 代码如下 复制代码
header(‘Content-type: application/octet-stream’);//输出的类型,根据下面提供的MIME表,选择相应的类型
header(‘Content-Disposition: attachment; filename=”下载显示名字.rar”‘);//下载显示的名字
readfile(‘服务器上的文件名.rar’);//

要下的文件,包括路径

常用的MIME类型
.doc    application/msword
.docx   application/vnd.openxmlformats-officedocument.wordprocessingml.document
.rtf    application/rtf
.xls    application/vnd.ms-excel application/x-excel
.xlsx   application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.ppt    application/vnd.ms-powerpoint
.pptx   application/vnd.openxmlformats-officedocument.presentationml.presentation
.pps   application/vnd.ms-powerpoint
.ppsx  application/vnd.openxmlformats-officedocument.presentationml.slideshow
.pdf   application/pdf
.swf   application/x-shockwave-flash
.dll   application/x-msdownload
.exe   application/octet-stream
.msi   application/octet-stream
.chm   application/octet-stream
.cab   application/octet-stream
.ocx   application/octet-stream
.rar  application/octet-stream
.tar  application/x-tar
.tgz  application/x-compressed
.zip  application/x-zip-compressed
.z    application/x-compress
.wav   audio/wav
.wma   audio/x-ms-wma
.wmv   video/x-ms-wmv
.mp3 .mp2 .mpe .mpeg .mpg   audio/mpeg
.rm   application/vnd.rn-realmedia
.mid .midi .rmi   audio/mid
.bmp   image/bmp
.gif   image/gif
.png   image/png
.tif .tiff    image/tiff
.jpe .jpeg .jpg    image/jpeg
.txt  text/plain
.xml  text/xml
.html text/html
.css  text/css
.js   text/javascript

在php中如果要实现日期转换成时间戳我们可以直接使用strtotime函数,如果把时间戳转换成日期直接使用date()函数即可实现,下面我来给各们朋友介绍介绍。

strtotime()函数 strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。


例子

 代码如下 复制代码

<?php
echo(strtotime("now"));
echo(strtotime("3 October 2005"));
echo(strtotime("+5 hours"));
echo(strtotime("+1 week"));
echo(strtotime("+1 week 3 days 7 hours 5 seconds"));
echo(strtotime("next Monday"));
echo(strtotime("last Sunday"));
?>

输出:

1138614504
1128290400
1138632504
1139219304
1139503709
1139180400
1138489200

上面是把日期转换成时间戳了,我们也可以把如 2013-04-21这种转换成时间戳

 代码如下 复制代码

$a = date();
$mk = strtotime($a)

要求只能在白天8:00-20:00发送短信,怎么样获得到每天的这段时间区间?

 代码如下 复制代码


<?
$y=date("Y",time());
$m=date("m",time());
$d=date("d",time());
$start_time = mktime(9, 0, 0, $m, $d ,$y);
$end_time = mktime(19, 0, 0, $m, $d ,$y);

$time = time();
if($time >= $start_time && $time <= $end_time)
{
// do something....
}
?>


下面来介绍把时间戳转换成日期


date()函数,

此函数不但可以获取各种各样的时间日期之外,还可以进行日期转换呼

 代码如下 复制代码

<?
$time = time();
$date = date("Y-m-d",$time);
echo 'www.111cn.net 提示'.$date
?>

这样就输出 www.111cn.net 提示 2013-04-21 。

这种问题是你php中把错误提示开启了之后,会把你编程的一些错误给告诉你,下面我来给大家分析php Notice: Undefined index 错误提示方法,有需要的朋友可参考。

原因分析

出现这种问题一般是变量未定义造成的

 代码如下 复制代码

if($a)
{
 echo $a;
}
else
{

}

//提示:Notice: Undefined variable: a in E:/www/test.php on line 5

 代码如下 复制代码


//解决

$a=1;
if($a)
{
 echo $a;
}
else
{

}

//输出1
//在文章头部加

error_reporting(0);

if($a)
{
 echo $a;
}
else
{

}

解决方法总结

1、如果是变量未申请直接申名变量如 $a=1; 这样。
2、在文章头部加error_reporting(0);  所有错误都不提示
3、isset($_GET["page"])  或 :@$page=$_GET["page"]
4、用php.ini中error_reporting   =   E_ALL   &   ~E_NOTICE 可以关闭notice的显示,屏蔽掉此类警告好,

在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,反之如果被引用的变量或者方法没有被声明成const或者static,那么就必须使用操作符->。

另外,如果从类的内部访问const或者static变量或者方法,那么就必须使用自引用的self,反之如果从类的内部访问不为const或者static变量或者方法,那么就必须使用自引用的$this。

$this实例

 代码如下 复制代码

<?php

// this是指向当前对象的指针

class test_this{
    private $content; //定义变量
   
    function __construct($content){ //定义构造函数
          $this->content= $content;
    }
    function __destruct(){}//定义析构函数
   
    function printContent(){//定义打印函数
        echo $this->content.'<br />';
    }
}

$test=new test_this('北京欢迎你!'); //实例化对象
$test->printContent();//北京欢迎你!

::使用方法

 代码如下 复制代码

//parent是指向父类的指针

class test_parent{ //基类
    public $name;  //定义姓名  父类成员需要定义为public,才能够在继承类中直接使用 this来调用。
    function __construct($name){
        $this->name=$name;
    }
}
class test_son extends test_parent{ //派生类  继承test_parent
    public $gender;//定义性别
    public $age;    //定义年龄
    function __construct($gender,$age){ //继承类的构造函数
        parent::__construct('nostop');//使用parent调用父类的构造函数,来进行对父类的实例化
        $this->gender=$gender;
        $this->age=$age;
    }
    function __destruct(){}
    function print_info(){
        echo $this->name.'是个'.$this->gender.',今年'.$this->age.'岁'.'<br />';
    }
}

$nostop=new test_son('女性','22');//实例化test_son对象
$nostop->print_info();//执行输出函数  nostop是个女性,今年23岁


使用self::$name的形式。注意的是const属性的申明格式,const PI=3.14,而不是const $PI=3.14

 代码如下 复制代码

class clss_a {
    
     private static  $name="static class_a";
    
     const PI=3.14;
     public $value;   
        
     public static function getName()
     {
        return self::$name;   
     }
     //这种写法有误,静态方法不能访问非静态属性
     public static function getName2()
     {
         return self::$value;
     }
     public function getPI()
     {
       return self::PI;   
     }
    
    
 }

还要注意的一点是如果类的方法是static的,他所访问的属性也必须是static的。
在类的内部方法访问未声明为const及static的属性时,使用$this->value ='class_a';的形式。

[!--infotagslink--]

相关文章

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

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

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

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • ps把文字背景变透明的操作方法

    ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
  • php数组操作 键名比较 差集 交集赋值

    本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
  • intellij idea快速查看当前类中的所有方法(推荐)

    这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02
  • C#二维数组基本用法实例

    这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • Mysql select语句设置默认值的方法

    1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
  • php curl模拟post请求和提交多维数组的示例代码

    下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <&#63;php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
  • js导出table数据到excel即导出为EXCEL文档的方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13
  • 删除条目时弹出的确认对话框

    复制代码 代码如下: <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
  • mysql 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • ps怎么制作倒影 ps设计倒影的方法

    ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果&#819...2017-07-06
  • js基础知识(公有方法、私有方法、特权方法)

    本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21