php數組為空
㈠ thinkphp 返回數組空怎麼判斷
PHP判斷數組為空首選方法:count($arr),size($arr);
$arr= array("");
echo count($arr);
echo size($arr);
//輸出1
$arr= array();
echo count($arr);
echo size($arr);
//輸出0
PHP判斷數組為空方法2:empty($arr);
$arr= array("");
$result = empty($arr);
//$result = false
$arr = array();
$result = empty($arr);
//$result = true
㈡ 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
)
這種方法的效率不錯
㈢ PHP怎樣判斷一個數組中是否有的鍵值為空
一、for循環
簡單直接用for循環遍歷數組於已知維數數組判斷未知維數組該辦
二、implode();
用implode()數組輸字元串判斷輸字串否空初看似乎錯惜跟點於二維數組行舉例:
$arr= array(array(),array(),array());
$str = implode(',',$arr);
if(empty($str)) echo "空";
else echo "非空";
明顯$arr含三空數組二維數組應該算空輸確非空判斷失敗
三、count();
承認我先想函數網網友答案並已經解決問題請看面例:
$arr= array("","","");
echo count($arr);
四、in_array('', $arr));
說看例:
$arr= array("d","s","");
echo in_array('', $arr);
能說明數組空元素能證明數組空明顯行
五、empty();
cpyeh覺跟前面幾種差
$arr= array("","","");
if(empty($arr)) echo "空";
else echo "非空";
結非空
例加句print_r($arr);看看...
基本cpyeh能想加網找些明白網居提is_array()能php解需要翻翻手冊遺憾終找完美解決於般應用第種或第二種應該滿足cpyeh選便第二種例疑問歡迎留言互相交流
計:
判斷二維數組同幹掉些空:
$this->dataObj->getTotalScore(&$resultinfo,$uids);
$judge = implode("",$resultinfo);
if(!empty($judge))//數組空
{ //掉數組鍵值空
foreach($resultinfo as $key =>$getoutvisnull)
{
if(empty($getoutvisnull))
{
unset($resultinfo[$key]);
}
}
$allscorearray[] = $resultinfo;
}
㈣ php中怎樣將數組重置為空
$array[] = array('id'=>'1');
//$array = array();
print_r($array);
中間注釋那行 就是把他設置為空 也就是給他重新賦個空值就行。
㈤ PHP怎樣判斷一個數組中是否有的鍵值為空
一、for循環
最簡單也是最直接的方法,用for循環來遍歷數組。對於已知維數的數組可以判斷,但如果是未知的多維數組,該怎麼辦?
二、implode();
用implode()將數組輸出為字元串,判斷輸出的字串是否為空。初看上去似乎是個不錯的方法,可惜跟上一點一樣,對於二維以上數組就不行了。舉個例子:
$arr= array(array(),array(),array());
$str = implode(',',$arr);
if(empty($str)) echo "空";
else echo "非空";
很明顯$arr是個含有三個空數組的二維數組,應該也算是空的,可是輸出的確是非空。判斷失敗。
三、count();
不得不承認,我最先想到的也是這個函數,網上也有好多網友把這個當答案,並以為已經解決問題。可是請看下面的例子:
$arr= array("","","");
echo count($arr);
四、in_array('', $arr));
不多說,還是看例子:
$arr= array("d","s","");
echo in_array('', $arr);
這個只能說明數組中有空的元素,不能證明數組是空的。很明顯也不行
五、empty();
這個cpyeh覺得跟前面幾種方法差不多
$arr= array("","","");
if(empty($arr)) echo "空";
else echo "非空";
結果還是非空
可以在以上例子上加一句print_r($arr);看看...
基本上cpyeh能想到的加上網上找到的也就以上這些,不明白的是網上居然有人會提到is_array(),可能是對php還不是很了解,需要多翻翻手冊。很遺憾最終還是找不到一個完美的解決方法,不過對於一般的應用,第一種或第二種應該可以滿足了,cpyeh選了方便的第二種。如果對以上例子有疑問歡迎留言在此互相交流。
後計:
如果判斷一個二維數組可以這樣,同時幹掉那些空的:
$this->dataObj->getTotalScore(&$resultinfo,$uids);
$judge = implode("",$resultinfo);
if(!empty($judge))//數組不為空
{ //去掉數組鍵值為空
foreach($resultinfo as $key =>$getoutvisnull)
{
if(empty($getoutvisnull))
{
unset($resultinfo[$key]);
}
}
$allscorearray[] = $resultinfo;
}
㈥ php判斷一個數組為空if好,還是if
1. isset功能:判斷變數是否被初始化
說明:它並不會判斷變數是否為空,並且可以用來判斷數組中元素是否被定義過注意:當使用isset來判斷數組元素是否被初始化過時,它的效率比array_key_exists高4倍左右PHP
<?php
$a = '';
$a['c'] = '';
if (!isset($a)) echo '$a 未被初始化' . "";if (!isset($b)) echo '$b 未被初始化' . "";if (isset($a['c'])) echo '$a 已經被初始化' . "";// 顯示結果為
// $b 未被初始化
// $a 已經被初始化
<?php
$a = '';
$a['c'] = '';
if (!isset($a)) echo '$a 未被初始化' . "";if (!isset($b)) echo '$b 未被初始化' . "";if (isset($a['c'])) echo '$a 已經被初始化' . "";// 顯示結果為
// $b 未被初始化
// $a 已經被初始化
2. empty功能:檢測變數是否為」空」
說明:任何一個未初始化的變數、值為 0 或 false 或 空字元串」」 或 null的變數、空數組、沒有任何屬性的對象,都將判斷為empty==true注意1:未初始化的變數也能被empty檢測為」空」
注意2:empty只能檢測變數,而不能檢測語句
PHP
<?php
$a = 0;
$b = '';
$c = array();
if (empty($a)) echo '$a 為空' . "";
if (empty($b)) echo '$b 為空' . "";
if (empty($c)) echo '$c 為空' . "";
if (empty($d)) echo '$d 為空' . "";
<?php
$a = 0;
$b = '';
$c = array();
if (empty($a)) echo '$a 為空' . "";
if (empty($b)) echo '$b 為空' . "";
if (empty($c)) echo '$c 為空' . "";
if (empty($d)) echo '$d 為空' . "";
3. var == null功能:判斷變數是否為」空」
說明:值為 0 或 false 或 空字元串」」 或 null的變數、空數組、都將判斷為 null注意:與empty的顯著不同就是:變數未初始化時 var == null 將會報錯。
PHP
<?php
$a = 0;
$b = array();
if ($a == null) echo '$a 為空' . "";
if ($b == null) echo '$b 為空' . "";
if ($c == null) echo '$b 為空' . "";
// 顯示結果為
// $a 為空
// $b 為空
// Undefined variable: c
<?php
$a = 0;
$b = array();
if ($a == null) echo '$a 為空' . "";
if ($b == null) echo '$b 為空' . "";
if ($c == null) echo '$b 為空' . "";
// 顯示結果為
// $a 為空
// $b 為空
// Undefined variable: c
4. is_null功能:檢測變數是否為」null」
說明:當變數被賦值為」null」時,檢測結果為true注意1:null不區分大小寫:$a = null; $a = NULL 沒有任何區別注意2:僅在變數的值為」null」時,檢測結果才為true,0、空字元串、false、空數組都檢測為false注意3:變數未初始化時,程序將會報錯
PHP
<?php
$a = null;
$b = false;
if (is_null($a)) echo '$a 為NULL' . "";
if (is_null($b)) echo '$b 為NULL' . "";
if (is_null($c)) echo '$c 為NULL' . "";
// 顯示結果為
// $a 為NULL
// Undefined variable: c
<?php
$a = null;
$b = false;
if (is_null($a)) echo '$a 為NULL' . "";
if (is_null($b)) echo '$b 為NULL' . "";
if (is_null($c)) echo '$c 為NULL' . "";
// 顯示結果為
// $a 為NULL
// Undefined variable: c
5. var === null功能:檢測變數是否為」null」,同時變數的類型也必須是」null」
說明:當變數被賦值為」null」時,同時變數的類型也是」null」時,檢測結果為true注意1:在判斷為」null」上,全等於和is_null的作用相同注意2:變數未初始化時,程序將會報錯
總結:
PHP中,」NULL」 和 「空」 是2個概念。
isset 主要用來判斷變數是否被初始化過
empty 可以將值為 「假」、」空」、」0″、」NULL」、」未初始化」 的變數都判斷為TRUEis_null 僅把值為 「NULL」 的變數判斷為TRUEvar == null 把值為 「假」、」空」、」0″、」NULL」 的變數都判斷為TRUEvar === null 僅把值為 「NULL」 的變數判斷為TRUE注意:在判斷一個變數是否真正為」NULL」時,大多使用 is_null,從而避免」false」、」0″等值的干擾。
㈦ php數組為空時,輸出值未定義數組索引,有什麼簡潔方式處理
如果你的PHP版本是7以下,只有使用isset一個辦法,如果是PHP7可以使用null運算:
$xxx = $a['name'] ?? '';
等效於:
$xxx = isset($a['name']) ? $a['name'] : '';
㈧ 我用php遍歷了一個數組,並寫了一個查詢的方法返回查詢結果,但是今天這個方法返回的第一個數組居然為空了
怎麼你 get_info_two 在調用和定義的時候,參數個數不一樣?
另外,你是說主體的 for each返回空,還是說get_info_two返回空?
㈨ php 判斷數組內所有元素是否為空
empty($value);
$value 可以是字元串,數字,數組,如果傳入空字元串'',或者數字0,或者空數組array(),返回值都是true,如果數組是array('a'=>array())則返回false,如果判斷的數組是後面的情況,則:
$is_empty=true;
foreach($arrayas$a){
if(!empty($a)){
$is_empty=false;
break;
}
}
㈩ 如何判斷PHP數組是否為空
判斷PHP數組是否為空,具體有五種方法:
1:isset功能:判斷變數是否被初始化
說明:它並不會判斷變數是否為空,並且可以用來判斷數組中元素是否被定義過
注意:當使用isset來判斷數組元素是否被初始化過時,它的效率比array_key_exists高4倍左右
<?php
$a='';
$a['c']='';
if(!isset($a))echo'$a未被初始化'."";
if(!isset($b))echo'$b未被初始化'."";
if(isset($a['c']))echo'$a已經被初始化'."";
//顯示結果為
//$b未被初始化
//$a已經被初始化
2:empty功能:檢測變數是否為」空」
說明:任何一個未初始化的變數、值為 0 或 false 或 空字元串」" 或 null的變數、空數組、沒有任何屬性的對象,都將判斷為empty==true
注意1:未初始化的變數也能被empty檢測為」空」
注意2:empty只能檢測變數,而不能檢測語句
<?php
$a=0;
$b='';
$c=array();
if(empty($a))echo'$a為空'."";
if(empty($b))echo'$b為空'."";
if(empty($c))echo'$c為空'."";
if(empty($d))echo'$d為空'."";
3:var == null功能:判斷變數是否為」空」
說明:值為 0 或 false 或 空字元串」" 或 null的變數、空數組、都將判斷為 null
注意:與empty的顯著不同就是:變數未初始化時 var == null 將會報錯。
<?php
$a=0;
$b=array();
if($a==null)echo'$a為空'."";
if($b==null)echo'$b為空'."";
if($c==null)echo'$b為空'."";
//顯示結果為
//$a為空
//$b為空
//Undefinedvariable:c
4:is_null功能:檢測變數是否為」null」
說明:當變數被賦值為」null」時,檢測結果為true
注意1:null不區分大小寫:$a = null; $a = NULL 沒有任何區別
注意2:僅在變數的值為」null」時,檢測結果才為true,0、空字元串、false、空數組都檢測為false
注意3:變數未初始化時,程序將會報錯
<?php
$a=null;
$b=false;
if(is_null($a))echo'$a為NULL'."";
if(is_null($b))echo'$b為NULL'."";
if(is_null($c))echo'$c為NULL'."";
//顯示結果為
//$a為NULL
//Undefinedvariable:c
5:var === null功能:檢測變數是否為」null」,同時變數的類型也必須是」null」
說明:當變數被賦值為」null」時,同時變數的類型也是」null」時,檢測結果為true
注意1:在判斷為」null」上,全等於和is_null的作用相同
注意2:變數未初始化時,程序將會報錯
總結:
PHP中,」NULL」 和 「空」 是2個概念。
isset 主要用來判斷變數是否被初始化過
empty 可以將值為 「假」、」空」、」0″、」NULL」、」未初始化」 的變數都判斷為TRUE
is_null 僅把值為 「NULL」 的變數判斷為TRUE
var == null 把值為 「假」、」空」、」0″、」NULL」 的變數都判斷為TRUE
var === null 僅把值為 「NULL」 的變數判斷為TRUE
注意:在判斷一個變數是否真正為」NULL」時,大多使用 is_null,從而避免」false」、」0″等值的干擾。