導航:首頁 > 編程語言 > 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去除數組空元素相關的資料

熱點內容
怎麼初步認識編程 瀏覽:208
為什麼程序員都喜歡谷歌 瀏覽:891
壓縮性骨拆能自愈嗎 瀏覽:277
安卓怎麼設置游戲畫面 瀏覽:114
k線上寫字源碼 瀏覽:457
單擊按鈕保存資料源碼 瀏覽:354
華為gt加密卡 瀏覽:213
河北超融合伺服器廠家雲主機 瀏覽:894
芙兒優安全座椅app怎麼連接 瀏覽:294
專業美團騎手app怎麼開通 瀏覽:949
個人音樂分享網站源碼 瀏覽:375
在新電腦上怎麼注冊加密狗 瀏覽:123
最後一戰游戲源碼 瀏覽:5
phpmysql實例下載 瀏覽:751
傳智黑馬安卓非加密 瀏覽:553
伺服器如何配置host 瀏覽:1001
守望執行命令 瀏覽:371
加密狗插上去了怎麼辦 瀏覽:624
錘子m1怎麼把文件夾重置 瀏覽:213
APP的數據會存在哪裡 瀏覽:66