php 删除重复数组元素与空元素代码

 更新时间:2016年11月25日 15:47  点击:1903
小编来给大家介绍在php中删除指定数组元素与删除空数组的实例代码与方法,有需要了解的朋友可进入参考参考。。

php删除数组指定元素可以通过以下两种方法实现:

1、遍历数组,然后判断元素的值是否指定值,如果是则用unset()删除。示例代码如下:

 代码如下 复制代码

//$var是要删除的元素值,$array是目标数组;
function array_del($var,$array){
 $i=0;
 foreach($array as $val){
  if($var==$val){
   unset($array[$i]);
   break;
  }
  $i++;
 }
 return $array;
}

2、使用array_flip()函数,该函数的作用是将键名和值反转。示例代码如下:

 代码如下 复制代码

<?php
$a=array('php','css','java','html','jquery');
$a=array_flip($a);  //将键名和值反转
unset($a['html']);  //删除指定值元素
$a=array_flip($a);  //将数组再次反转,还原数组的键名和值
var_dump($a);
?>

删除数组中的空元素

实例:

 代码如下 复制代码

<?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

   )

去除数组中的空元素以及重复元素

 代码如下 复制代码

<?php

$array = array('2',19,33,88,2,4,5,5,99,99,'',33,'');
function delArrayRepeat($arr){
 if(is_array($arr)){
  $arr = array_unique($arr);
  foreach($arr as $k=>$v){
   if($v==''){
    unset($arr[$k]);
   }
  }
  $result = $arr;
 }else{
  $result = "参数必需是数组!";
 }
 return $result;
}
$res = delArrayRepeat($array);
print_r($res);

?>

本文章来给各位朋友详细介绍关于在php学日期时间函数的一些用法与参数介绍,php支持的时间函数有很多,例如:getdate()、mktime()、gmdate()等等,下面我来给大家介绍有兴趣的朋友可以在网上搜索相关资料。

获取日期时间也是网站设计中经常用到的。php提供了date()时间函数来实现这一功能,结构形式如下:

实例:

 代码如下 复制代码

<?php             
 echo date("F j, Y, g:i a"). "&nbsp&nbsp&nbsp&nbsp&nbsp"; 
 echo date("m.d.y"). "&nbsp&nbsp&nbsp&nbsp&nbsp";  
 echo  date("j, n, Y"). "&nbsp&nbsp&nbsp&nbsp&nbsp";  
 echo  date("Ymd"). "&nbsp&nbsp&nbsp&nbsp&nbsp";    
 echo  date('h-i-s, j-m-y, it is w Day z '). "&nbsp&nbsp&nbsp&nbsp&nbsp";
 
 echo  date('it is the jS day.'). "&nbsp&nbsp&nbsp&nbsp&nbsp";
 
 echo  date("D M j G:i:s T Y"). "&nbsp&nbsp&nbsp&nbsp&nbsp"; 
 echo  date('H:m:s m is month'). "&nbsp&nbsp&nbsp&nbsp&nbsp"; 
 
 echo  date("H:i:s"). "&nbsp&nbsp&nbsp&nbsp&nbsp";   
 echo date('l dS of F Y h:i:s A');       
 echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));   
?>

format参数及其含义
参数 含义 备注
a 上午或下午 am或pm
A 上午或下午 AM或PM
B 互联网时间 000~999
d 月份中的第几天 01~31
D 替换成星期几的英文简称 Mon~Sun
F 用英文表示月份 January~December
g 小时 1~12
G 小时 0~23
h 小时 01~12
H 小时 00~23
i 分钟 00~59
I 是否为夏令时 是为1,否为0
j 月份中的第几天 1~31
l 星期几 Sunday~Saturday
L 是否为闰年 闰年为1,不是闰年为0
m 用数字表示月份,按两位输出 01~12
M 月份缩写的英文单词 Jan~Dec
n 月份按阿拉伯数字格式输出 1~12
s 秒数 00~59
S 每月天数英文后缀 1st~2nd
t 指定月份的天数 28~31
T 本机设置的时区 如EST
w 一周的第几天(从0~6) 0~6
Y 替换成4位年号 如2011
y 替换成2位的年号 如11
z 一年中第几天 0~366
Z 以秒表示的时区偏差 -43200~43200

getdate()定义和用法

getdate() 函数取得日期/时间信息。

语法
getdate(timestamp)参数 描述
timestamp 可选。规定 Unix 时间格式中的时间。

说明
返回一个根据 timestamp 得出的包含有日期信息的结合数组。如果没有给出时间戳,则认为是当前本地时间。

数组中的单元如下:

 代码如下 复制代码

<?php
print_r(getdate());
?>输出:

Array
(
[seconds] => 45
[minutes] => 52
[hours] => 14
[mday] => 24
[wday] => 2
[mon] => 1
[year] => 2006
[yday] => 23
[weekday] => Tuesday
[month] => January
[0] => 1138110765
)

键名 说明 返回值例子
"seconds" 秒的数字表示 0 到 59
"minutes" 分钟的数字表示 0 到 59
"hours" 小时的数字表示 0 到 23
"mday" 月份中第几天的数字表示 1 到 31
"wday" 星期中第几天的数字表示 0(表示星期天)到 6(表示星期六)
"mon" 月份的数字表示 1 到 12
"year" 4 位数字表示的完整年份 例如:1999 或 2003
"yday" 一年中第几天的数字表示 0 到 365
"weekday" 星期几的完整文本表示 Sunday 到 Saturday
"month" 月份的完整文本表示 January 到 December
0 自从 Unix 纪元开始至今的秒数,和 time() 的返回值以及用于 date() 的值类似。 系统相关,典型值为从 -2147483648 到 2147483647。

mktime() 定义和用法

mktime() 函数返回一个日期的 Unix 时间戳。

参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。

参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。

语法
mktime(hour,minute,second,month,day,year,is_dst)

例子
mktime() 函数对于日期运算和验证非常有用。它可以自动校正越界的输入:

 代码如下 复制代码
<?php
echo(date("M-d-Y",mktime(0,0,0,12,36,2001)));
echo(date("M-d-Y",mktime(0,0,0,14,1,2001)));
echo(date("M-d-Y",mktime(0,0,0,1,1,2001)));
echo(date("M-d-Y",mktime(0,0,0,1,1,99)));
?>

输出:

Jan-05-2002
Feb-01-2002
Jan-01-2001
Jan-01-1999

参数 描述
hour 可选。规定小时。
minute 可选。规定分钟。
second 可选。规定秒。
month 可选。规定用数字表示的月。
day 可选。规定天。
year 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。
is_dst

可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。

自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。

在php中如果要实现下载如图片文件,php文件,html文件这些文件我们如果在网站上点击都是直接打开了,如果要实现下载我们可以利用php header函数来操作,下面我来介绍利用php header函数实现文件下载的实例,有需要的朋友可参考。

例1

 代码如下 复制代码

function download($file_url,$new_name=''){
 if(!isset($file_url) || trim($file_url)==''){
  return '500';
 }
 if(!file_exists($file_url)) { //检查文件是否存在
  return '404';
 }
 $file_name=basename($file_url);
 $file_type=explode('.',$file_url);
 $file_type=$file_type[count($file_type)-1];
 $file_name=trim($new_name=='')?$file_name:urlencode($new_name).'.'.$file_type;
 $file_type=fopen($file_url,'r'); //打开文件
 //输入文件标签
 header("Content-type: application/octet-stream");
 header("Accept-Ranges: bytes");
 header("Accept-Length: ".filesize($file_url));
 header("Content-Disposition: attachment; filename=".$file_name);
 //输出文件内容
 echo fread($file_type,filesize($file_url));
 fclose($file_type);
}

例2

以下php代码可以解决:
 

 代码如下 复制代码
<?
if( empty($_GET['FileName'])|| empty($_GET['FileDir'])|| empty($_GET['FileId'])){
    echo'<script> alert("非法连接 !"); location.replace ("index.php") </script>'; exit();
}
$file_name=$_GET['FileName'];
$file_dir=$_GET['FileDir'];
$FileId=$_GET['FileId'];
$file_dir = $file_dir."/";
if   (!file_exists($file_dir.$file_name))   {   //检查文件是否存在 
  echo   "文件找不到"; 
  exit;   
  }   else   { 
$file = fopen($file_dir . $file_name,"r"); // 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit();
}
?>

直接下载文件

 代码如下 复制代码
<?php  
$file = get_file_address();// 文件的真实地址(支持url,不过不建议用url)  
 
if (file_exists($file)) {  
    header('Content-Description: File Transfer');  
    header('Content-Type: application/octet-stream');  
    header('Content-Disposition: attachment; filename='.basename($file));  
    header('Content-Transfer-Encoding: binary');  
    header('Expires: 0');  
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');  
    header('Pragma: public');  
    header('Content-Length: ' . filesize($file));  
    ob_clean();  
    flush();  
    readfile($file);  
    exit;  
}  
?>

小提示,header函数不只是可以实现文件下载,他还有很多的功能哦,如发送404,301等等状态信息都是可以的哦。

注意:在使用header之前我们必须在header之前没有任何输出,否则就会报错。

我们使用phpmyadmin的朋友可能会碰到导入2048kb .sql文件了,大了就会提示No data was received to import. Either no file name was submitted、or the file size exceeded the maximum size permitted by your PHP 下在, 我来给大家介绍解决办法。

解决方法:

如果你有服务器管理权限,那自然是更好了,我们直接在php.ini下分别对 upload_max_filesize , memory_limit 和 post_max_size进入设置了。

如我的配置

upload_max_filesize = 1200M

memory_limit = 2048M

post_max_size = 1200M

然后重启apache或iis就可以了

如果你没有服务器管理权限,我们还有一个解决办法


phpMyAdmin-3.1.0-all-languages为例,我的安装目录E:/wwwroot/phpMyAdmin/

1.在 phpmyadmin目录里新建一个目录 upload.

2.打开phpmyadmin,找到E:/wwwroot/phpMyAdmin/config.sample.inc.php文件,找到并修改为 $cfg['UploadDir'] = “upload”; 然后点保存.
再打开E:/wwwroot/phpMyAdmin/libraries/config.default.php文件,找到并修改为 $cfg['UploadDir'] = “upload”; 然后点保存.

3.用 FTP 上传 需要导入的sql 文件到 phpmyadmin/upload/ 下

4.访问 phpmyadmin,点击 Import(导入) ,就会出现选择服务器上的文件的下拉框,选择刚才用FTP上传的SQL文件。至此完美解决。

this,parent,self都是在php中的class类中了,下面我来分别介绍this,parent,self在类中用应用与区别有需要的朋友可参考。

一,this

1,要用this,你必有是一个对像的形势,不然它会报错的,Fatal error: Using $this when not in object context。

2,this可以调用本类中的方法和属性,也可以调用父类中的可以调的方法和属性

 代码如下 复制代码

< ?php   
class UserName  
{   
//定义属性   
private $name;  
//定义构造函数  
function __construct( $name )  
{  
$this->name = $name;
//这里已经使用了this指针  
}  
//析构函数  
function __destruct(){}   
//打印用户名成员函数  
function printName()  
{  
print( $this->name );
//又使用了PHP关键字this指针  
}  
}   
//实例化对象  
$nameObject = new UserName
( "heiyeluren" );   
//执行打印  
$nameObject->printName();
 //输出: heiyeluren  
//第二次实例化对象  
$nameObject2 = new UserName( "PHP5" );  
//执行打印  
$nameObject2->printName(); //输出:PHP5  
?> 

我 们看,上面的类分别在11行和20行使用了this指针,那么当时this是指向谁呢?其实this是在实例化的时候来确定指向谁,比如第一次实例化对象 的时候(25行),那么当时this就是指向$nameObject对象,那么执行18行的打印的时候就把print( $this-><name )变成了print( $nameObject->name ),那么当然就输出了"heiyeluren"。


二,self

self是指向类本身,也就是PHP self关键字是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量。
1,self可以访问本类中的静态属性和静态方法,可以访问父类中的静态属性和静态方法。
2,用self时,可以不用实例化的

 代码如下 复制代码

< ?php  
class Counter  
{  
//定义属性,包括一个静态变量  
private static $firstCount = 0;  
private $lastCount;  
//构造函数  
function __construct()  
{  
$this->lastCount = ++selft
::$firstCount;
 //使用PHP self关键字来调用静态变量,使用self
调用必须使用::(域运算符号)  
}  
//打印最次数值  
function printLastCount()  
{  
print( $this->lastCount );  
}   
}  
//实例化对象  
$countObject = new Counter();  
$countObject->printLastCount();
 //输出 1  
?> 

三,parent

parent:: 可用于调用父类中定义的成员方法。
parent::的追溯不仅于直接父类。
通过parent::调用父类方法

 代码如下 复制代码

<!-- 声明一个员工类,经理类继承自员工类 -->
<?
class employee{
 protected  $sal=3000;  
 public function getSal(){
  $this->sal = $this->sal + 1200;  
  return $this->sal ;
 } 
}

class Manager extends employee {
 //如果想让经理在员工工资的基础上多发1500元.
 //必须先调用父类的getSal()方法.
 public function getSal(){  
  parent::getSal();// 这里调用了父类的方法.
  $this->sal = $this->sal + 1500;  
  return $this->sal ;
 } 
}
$emp = new employee();
echo "普通员工的工资是 " . $emp->getSal();
echo "<br>";

$manager = new Manager();
echo "经理的工资是: " . $manager->getSal();
?>

parent是指向父类的指针,一般我们使用parent来调用父类的构造函数。

[!--infotagslink--]

相关文章

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

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

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

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • 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
  • C# 拷贝数组的几种方法(总结)

    下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • php跨网站请求伪造与防止伪造方法

    伪造跨站请求介绍伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等。...2013-10-01
  • PHP 二维数组根据某个字段排序的具体实现

    本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 遇到这个...2014-06-07
  • C#实现字符串转换成字节数组的简单实现方法

    这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
  • c#将字节数组转成易读的字符串的实现

    这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • Centos中彻底删除Mysql(rpm、yum安装的情况)

    我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cn...2015-03-15
  • C#读取文件所有行到数组的方法

    这篇文章主要介绍了C#读取文件所有行到数组的方法,涉及C#针对文件及数组的相关操作技巧,需要的朋友可以参考下...2020-06-25
  • 将二维数组转为一维数组的2种方法

    如何将下面的二维数组转为一维数组。复制代码 代码如下:$msg = array(  array(    'id'=>'45',    'name'=>'jack'  ),  array(    'id'=>'34',    'name'=>'mary'  ),  array(    'id...2014-05-31
  • MyBatis-Plus的物理删除和逻辑删除(使用场景)

    数据库中的数据删除会分为两种:物理删除 和 逻辑删除,接下来通过本文给大家介绍MyBatis-Plus的物理删除和逻辑删除使用场景分析,感兴趣的朋友一起看看吧...2021-09-25
  • php中数组写入文件方法

    在php中为我们提供了一个函数var_export 他可以直接将php代码入到一个文件中哦。 代码如下 复制代码 var_export($times,true);后面不加tru...2016-11-25
  • PHP 如何获取二维数组中某个key的集合

    本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享。 具体是这样的,如下一个二维数组,是从库中读取出来的。 代码清单: 复制代码 代码如下: $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'ema...2014-06-07
  • sqlserver删除重复记录并且要保留一条记录

    删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢...2018-09-10