php刪除數組空
❶ php中怎麼刪除數組的第一個元素和最後一個元素
使用 array_shift 刪除數組的第一個元素,例如:
$user=array('apple','banana','orange');
$result=array_shift($user);
print_r($result);
print_r($user);
array_pop() 彈出並返回 array 數組的最後一個單元,並將數組 array 的長度減一。如果 array 為空(或者不是數組)將返回 NULL。
array_shift() 將 array 的第一個單元移出並作為結果返回,將 array 的長度減一並將所有其它單元向前移動一位。所有的數字鍵名將改為從零開始計數,文字鍵名將不變。如果 array 為空(或者不是數組),則返回 NULL。
❷ 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 判斷數組是否為空的幾個方法
GOOGLE之後整理出以下辦法:
一、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 非空;
結果還是非空
六、用strlen(),沒內容的話好象長度都為1可以在以上例子上加一句print_r($arr);看看
❹ php foreach不能循環空數組
你把代碼貼出來看看!我測試是沒有問題的,數組$empty沒有賦值是空的,
可以直接用foreach來循環,代碼如下:
<html>
<body>
<?php
echo
"Hello
World<br/>";
$arr
=
array("red",
"bar",
"foo");
$empty
=
array();
//
空數組
foreach($arr
as
$_){
echo
"$_<br/>";
}
foreach($empty
as
$_){
echo
"$_<br/>";
}
?>
</body>
</html>
--------輸出------------
Hello
World
red
bar
foo
❺ php瀵規暟鎹榪涜屾暟鎹澶勭悊錛
PHP鏄涓縐嶅父鐢ㄧ殑緙栫▼璇璦錛屽彲浠ョ敤鏉ュ規暟鎹榪涜屽勭悊鍜屾搷浣溿備互涓嬫槸涓浜涘父瑙佺殑PHP鏁版嵁澶勭悊鏂規硶錛
鏁扮粍鎿嶄綔錛歅HP涓鍙浠ヤ嬌鐢ㄦ暟緇勬潵瀛樺偍鍜屽勭悊鏁版嵁銆傚彲浠ヤ嬌鐢ㄦ暟緇勫嚱鏁版潵瀵規暟緇勮繘琛屾搷浣滐紝渚嬪傚炲姞銆佸垹闄ゃ佹煡鎵俱佹帓搴忕瓑銆備緥濡傦紝鍙浠ヤ嬌鐢ㄤ互涓嬩唬鐮佸皢涓涓鏁扮粍鎸夌収鏌愪釜閿鍊艱繘琛屾帓搴忥細
php
澶嶅埗
$arr = array(
array('name' => 'Alice', 'age' => 20),
array('name' => 'Bob', 'age' => 25),
array('name' => 'Charlie', 'age' => 22)
);
// 鎸夌収騫撮緞榪涜屾帓搴
usort($arr, function($a, $b) {
return $a['age'] - $b['age'];
});
瀛楃︿覆鎿嶄綔錛歅HP涓涔熷彲浠ュ瑰瓧絎︿覆榪涜屾搷浣滐紝渚嬪傛煡鎵俱佹浛鎹銆佸垎鍓茬瓑銆備緥濡傦紝鍙浠ヤ嬌鐢ㄤ互涓嬩唬鐮佸皢涓涓瀛楃︿覆鎸夌収絀烘牸榪涜屽垎鍓詫細
php
澶嶅埗
$str = 'Hello World';
$arr = explode(' ', $str);
print_r($arr);
鏉′歡璇鍙ワ細PHP涓鍙浠ヤ嬌鐢ㄦ潯浠惰鍙ワ紙if銆乪lse絳夛級鏉ヨ繘琛屾暟鎹鐨勫垽鏂鍜屽勭悊銆備緥濡傦紝鍙浠ヤ嬌鐢ㄤ互涓嬩唬鐮佸垽鏂涓涓鏁版槸鍚︿負鍋舵暟錛
php
澶嶅埗
$num = 10;
if ($num % 2 == 0) {
echo '$num 鏄鍋舵暟';
} else {
echo '$num 鏄濂囨暟';
}
寰鐜璇鍙ワ細PHP涓涔熷彲浠ヤ嬌鐢ㄥ驚鐜璇鍙ワ紙for銆亀hile絳夛級鏉ヨ繘琛屾暟鎹鐨勯亶鍘嗗拰鎿嶄綔銆備緥濡傦紝鍙浠ヤ嬌鐢ㄤ互涓嬩唬鐮佸逛竴涓鏁扮粍榪涜岄亶鍘嗗苟杈撳嚭錛
php
澶嶅埗
$arr = array('Alice', 'Bob', 'Charlie');
foreach ($arr as $name) {
echo $name . ' ';
}
鍑芥暟錛歅HP涓鍙浠ュ畾涔夊嚱鏁版潵瀵規暟鎹榪涜屽勭悊鍜屾搷浣溿傚嚱鏁板彲浠ユ帴鍙楀弬鏁板拰榪斿洖鍊礆紝鍙浠ョ敤鏉ュ皝瑁呭彲澶嶇敤鐨勪唬鐮併備緥濡傦紝鍙浠ヤ嬌鐢ㄤ互涓嬩唬鐮佸畾涔変竴涓鍑芥暟鏉ヨ$畻涓や釜鏁扮殑鍜岋細
php
澶嶅埗
function add($a, $b) {
return $a + $b;
}
$sum = add(10, 20);
echo $sum;
榪欎簺鏄疨HP涓榪涜屾暟鎹澶勭悊鐨勪竴浜涘父瑙佹柟娉曪紝鍙浠ユ牴鎹鍏蜂綋鐨勯渶奼傞夋嫨鍚堥傜殑鏂規硶鏉ユ搷浣滄暟鎹銆
❻ 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文件或資料庫,速度也非常快