导航:首页 > 编程语言 > php去除数组空元素

php去除数组空元素

发布时间:2023-04-22 06:08:23

1. php foreach 遇到空数组怎么办

PHP删除数组中空值的方法:

1.去掉数组的空值是都是强写foreach或者while的,利用这两个语法结构来删除数组中的空元素,简单代码如下:

<?php
foreach($arras$k=>$v){
if(!$v)
unset($arr[$k]);
}
?>

这种方法的效率不是很高

2. array_filter函数的功能是利用回调函数来对数组进行过滤,一直都以为用回调函数才能处理,却没有发现手册下面还有一句,如果没有回调函数,那么默认就是删除数组中值为false的项目。代码如下:

<?php

$entry=array(
0=>'foo',
1=>false,
2=>-1,
3=>null,
4=>''
);

print_r(array_filter($entry));
?>

输出值为:

Array
(
[0]=>foo
[2]=>-1
)

这种方法的效率不错

2. PHP代码实现1)删除整个数组2)删除数组中指定的元素3)删除重复的元素

$cars=array("Volvo","BMW","Toyota","BMW","23","33","23","67","23");
$cars2 = array_unique($cars);//元素去重
$cars2 = array_merge_recursive($cars2);//合并(因为去重后索引号不重新整理)
$delCars = array_splice($cars2,1,2);//从数组中移除索引号1开始共计2个元素
array_splice($cars2,0,(count($cars2)));//清空数组内容
unset($cars2);//或 $cars2 = null ,删除数组

3. 删除数组元素实用的PHP数组函数

/**
*
从数组中删除空白的元素(包括只有空白字符的元素)
*
*
@param
array
$arr
*
@param
boolean
$trim
*/
复制代码
代码如下:
function
array_remove_empty(&
$arr,
$trim
=
true)
{
foreach
($arr
as
$key
=>
$value)
{
if
(is_array($value))
{
array_remove_empty($arr[$key]);
}
else
{
$value
=
trim($value);
if
($value
==
'')
{
unset($arr[$key]);
}
elseif
($trim)
{
$arr[$key]
=
$value;
}
}
}
}
/**
*
将一个二维数组转换为
hashmap
*
*
如果省略
$valueField
参数,则转换结果每一项为包含该项所有数据的数组。
*
*
@param
array
$arr
*
@param
string
$keyField
*
@param
string
$valueField
*
*
@return
array
*/
复制代码
代码如下:
function
array_to_hashmap(&
$arr,
$keyField,
$valueField
=
null)
{
$ret
=
array();
if($valueField)
{
foreach
($arr
as
$row)
{
$ret[$row[$keyField]]
=
$row[$valueField];
}
}
else
{
foreach($arr
as
$row)
{
$ret[$row[$keyField]]
=
$row;
}
}
return
$ret;
}

4. php中删除数组中的某一些元素

array_splice函数可以删除数组中的元素(只是该函数的功能之一),array_splice用法如下:
array_splice

把数组中的一部分去掉并用其它值取代
array array_splice( array &$input, int $offset[, int $length = 0 [, mixed $replacement ]] )把
input
数组中由offset

length指定的单元去掉,如果提供了
replacement
参数,则用其中的单元取代。
input:输入的数组。
offset:如果
offset
为正,则从
input数组中该值指定的偏移量开始移除。如果
offset为负,则从
input
末尾倒数该值指定的偏移量开始移除。
length:如果省略
length,则移除数组中从offset到结尾的所有部分。
如果指定了
length并且为正值,则移除这么多单元。
如果指定了
length并且为负值,则移除从
offset
到数组末尾倒数length
为止中间所有的单元。
小窍门:当给出了replacement
时要移除从
offset到数组末尾所有单元时,用count($input)
作为
length。
replacement:如果给出了
replacement
数组,则被移除的单元被此数组中的单元替代。
示例,删除数组$inputArr的第5~10个元素(从0开始数,包括第5个和第10个,共6个元素)
array_splice($inputArr,5,6);

5. PHP怎么删除二维数组的空数组

$array2D=array('first'=>array('title'=>'1111','date'=>'2222'),'second'=>array('title'=>'1111','date'=>'2222'),'third'=>array('title'=>'2222','date'=>'3333'));
print_r($array2D);
print_r(unique_arr($array2D,true));

6. php数组元素值的修改和删除问题

删除数组元素和删除一个变量一样
unset($strArray['key']);
更新是直接赋值
$strArray['key'] = 'new var';
=================
这种事情我做过, 关键是把 $strArray 放在文件中,以及对这个数组的操作.

1.存放,比如放在 strarray.php 中

$fp = fopen('strarray.php','w');
fwrite($fp,'<?php'."\n".'$strArray = '.var_export($strArray,1).";\n?>");
fclose($fp);

2. 读取

include 'strarray.php';

3. 删除

unset($strArray['key'])

====
要注意的是,如果使用函数来做这些操作,strArray是全局变量,在function中要有

global $strArray;

这句声明

我试过使用这个方法来存放经纬度数据,好处是不用xml文件或数据库,速度也非常快

7. PHP去除数组值两边的空格,分析一下这段代码的原理

①如果是一维数组,你用array_map执行函数的时候,传到$input里的都是值。此时在TrimArray里面直接执行trim清除空格。

请注意,array_map的作用是针对整个数组的。此时只需执行一次,即可完成对整个一维数组的去空格处理。这个应该是你疑惑的关键点。可参考网页链接

②如果是多维数组,传到$input里的还是数组,此时才会执行递归操作,将多维数组逐步拆解成一维数组,后续操作同①

阅读全文

与php去除数组空元素相关的资料

热点内容
phpmysql实例下载 浏览:749
传智黑马安卓非加密 浏览:553
服务器如何配置host 浏览:1001
守望执行命令 浏览:371
加密狗插上去了怎么办 浏览:624
锤子m1怎么把文件夹重置 浏览:213
APP的数据会存在哪里 浏览:66
一支轻快又解压的舞 浏览:588
80x86编程手册 浏览:767
android机制使用 浏览:363
国外太空探索网站源码 浏览:645
dotaimba命令大全 浏览:15
手解剖pdf 浏览:735
单片机无法烧写程序 浏览:415
pline命令 浏览:113
760贴片机编程视频 浏览:335
欧姆龙plc编程第36讲 浏览:917
我的世界如何将一个服务器弄崩 浏览:10
php网站访问量代码 浏览:433
怠速压缩机咔咔响 浏览:178