php 数组之删除空数组程序

 更新时间:2016年11月25日 17:40  点击:1327
删除空元素的数组方法很多了,我今天来介绍两种经典的方法,一个是利用了array_filter函数,另一个也利用函数调用自定义函数。
 代码如下 复制代码

<?php
$str1_array=array('一聚教程网','','http://www.111cn.net','','1654','');
$str1_array=array_filter($str1_array);
print_r($str1_array);
?>

结果


Array
(
[0] => 一聚教程网
[2] => http://www.111cn.net
[4] => 1654
)


实例

 

 代码如下 复制代码

$fangId = PostGet('houseId'); // 取得地址栏值
 $tempArray = array_filter(explode('_',$fangId),"filter"); //以__分成数组并且删除空数组
 
 if( is_array($tempArray) && !empty( $tempArray ) ) //判断数组是否有值
 {
  print_r($tempArray); //测试输出
 }
 else
 {
  MessAge('请选择对比较楼盘','list.php');
 }
 

 function filter($var)  处理函数
 {
   if($var == '')
   {
    return false;
   }
   return true;
 }


测试方法:/compare.php?houseId=2306__2307__2303__2308


更多详细内容请查看:http://www.111cn.net/phper/21/b427d2b7535fc76ad744d41f825590dc.htm

中文在php 开发中经常会有意无意的碰到问题,今天我们来看看json_encode中文乱码的解决办法吧,虽然方法不是很好,但可以解决问题只
 代码如下 复制代码

<?php
$arr = array
       (
          'Name'=>'希亚',
          'Age'=>20
       );

$jsonencode = json_encode($arr);
echo $jsonencode;
?>

结果如下

{"Name":null,"Age":20}

中文成了空,那是什么原因呢,下面接着看
我们来测试utf-8

 代码如下 复制代码

<?php
$array = array
 (
   'title'=>iconv('gb2312','utf-8','这里是中文标题'),
  'body'=>'abcd...'
 );

echo json_encode($array);
?>

结果
{"title":"u8fd9u91ccu662fu4e2du6587u6807u9898","body":"abcd..."}

也不是我们想的东西,那我们利用php urlencode()函数处理以下,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下

这样中文就没有问题了哦。

今天要讲到了是关于empty函数的用法,和等空有什么区别,以及用它来操作数组时是不是返回正常的值,有需要的朋友可以参考一下。

 

 代码如下 复制代码
<?php
$array1=array();
print_r($array1);
if(empty($array1)){
    echo '对empty()来说是空数组(an empty array)';
}
else{
    echo '对empty()来说是非空数组(an noempty array)';
}
?>
显示结果:######################
Array
(
)
对empty()来说是an empty array

###############################

 

 代码如下 复制代码
<?php
$array1=array();
$array1[]='';
print_r($array1);
if(empty($array1)){
    echo '对empty()来说是空数组(an empty array)';
}
else{
    echo '对empty()来说是非空数组(an noempty array)';
}
?>
显示结果:######################
Array
(
    [0] =>
)
对empty()来说是非空数组(an noempty array)
###############################

 

这个并不是空数组,因为它有一个元素为空字符(""),要注意和空字符("" (an empty string))区别;

实际上就是
empty($x)   等于     !isset($x)   ||   !$x
!empty($x)   等于   isset($x)   &&   $x

关于empty函数语法

empty -- 检查一个变量是否为空
描述
bool empty ( mixed var)


如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

由于中文是两个字节所以不能像英文和数字那样来用substr()这样会出现乱码,幸好在php有mb_substr()函数来处理这个问题,有需要的朋友看看。

一、中文截取:mb_substr()

mb_substr( $str, $start, $length, $encoding )

$str,需要截断的字符串
$start,截断开始处,起始处为0
$length,要截取的字数
$encoding,网页编码,如utf-8,GB2312,GBK

实例:

 代码如下 复制代码
<?php
$str='电影618:http://www.111cn.net';
echo mb_substr($str,0,5,'utf-8');//截取头5个字,假定此代码所在php文件的编码为utf-8
?>

结果显示:电影618

二、获取中文长度:mb_strlen()

mb_strlen( $str, $encoding )

$str,要计算长度的字符串
$encoding,网页编码,如utf-8,GB2312,GBK

实例:

 代码如下 复制代码
<?php
$str='电影618:http://www.111cn.net';
echo mb_strlen($str,'utf-8');//假定此代码所在php文件的编码为utf-8
?>

结果显示:29

在php中编码一直是开发人员的头痛的事情,但是如果甜美一些有用的函数就不一样了,下面我们介绍一下关于一个中文编码的处理函数。

mb_convert_encoding( $str, $encoding1,$encoding2 )

$str,要转换编码的字符串
$encoding1,目标编码,如utf-8,gbk,大小写均可
$encoding2,原编码,如utf-8,gbk,大小写均可

实例1

 代码如下 复制代码

<?php  
$str='电影618:http://www.111cn.net';
echo mb_convert_encoding($str, "UTF-8"); //编码转换为utf-8
?> 

实例2

 代码如下 复制代码

<?php  
$str='电影618:http://www.111cn.net';
echo mb_convert_encoding($str, "UTF-8", "GBK"); //已知原编码为GBK,转换为utf-8
?> 

实例3

 代码如下 复制代码

<?php  
$str='电影618:http://www.111cn.net';
echo mb_convert_encoding($str, "UTF-8", "auto"); //未知原编码,通过auto自动检测后,转换编码为utf-8
?>

php.net网站实例

 

 代码如下 复制代码

<?php
/* Convert internal character encoding to SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* Convert EUC-JP to UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

[!--infotagslink--]

相关文章

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

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

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • C#开发Windows窗体应用程序的简单操作步骤

    这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • C++调用C#的DLL程序实现方法

    本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...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#使用Process类调用外部exe程序

    本文通过两个示例讲解了一下Process类调用外部应用程序的基本用法,并简单讲解了StartInfo属性,有需要的朋友可以参考一下。...2020-06-25
  • C#数组的常用操作方法小结

    Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
  • 微信小程序 页面传值详解

    这篇文章主要介绍了微信小程序 页面传值详解的相关资料,需要的朋友可以参考下...2017-03-13
  • php curl模拟post请求和提交多维数组的示例代码

    下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <&#63;php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
  • 使用GruntJS构建Web程序之构建篇

    大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
  • uniapp微信小程序:key失效的解决方法

    这篇文章主要介绍了uniapp微信小程序:key失效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20
  • 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#一些程序,但如何将他们和photoshop一样的大型软件打成一个压缩包,以便于发布....2020-06-25
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24