<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    php如何去除數組中相同的元素

    時間:2025-04-14 21:36:21 php語言 我要投稿
    • 相關推薦

    php如何去除數組中相同的元素

      如何去除數組中相同的元素?在php手冊中這樣寫,希望對大家有用,更多內容請關注應屆畢業生網!

      array_unique(PHP 4 >= 4.0.1)

      array_unique -- 移除數組中重復的值

      說明

      array array_unique ( array array)

      array_unique() 接受 array 作為輸入并返回沒有重復值的新數組。

      注意鍵名保留不變。array_unique() 先將值作為字符串排序,然后對每個值只保留第一個遇到的鍵名,接著忽略所有后面的鍵名。這并不意味著在未排序的 array 中同一個值的第一個出現的鍵名會被保留。

      注: 當且僅當 (string) $elem1 === (string) $elem2 時兩個單元被認為相同。就是說,當字符串的表達一樣時。

      第一個單元將被保留。

      例子 1. array_unique() 例子

      [php]

      $input = array ("a" => "green", "red", "b" => "green", "blue", "red");

      $result = array_unique ($input);

      print_r($result);

      ?>

      [/php]

      【拓展閱讀】PHP必須知道的容易出錯的小細節

      注意echo和print的區別

      PHP中echo和print都是輸出的作用,但是兩者之間還是有細微的差別。echo輸出后沒有返回值,但print有返回值,當其執行失敗時返回flase。因此可以作為一個普通函數來使用,例如執行$r = print "Hello World"; 變量$r的值將為1。而且代碼中echo語句的運行效率要略快于print語句。

      注意空字符串('')和NULL的區別

      PHP中空字符串和NULL都是以值為0存儲的,但是他們的類型并不一樣,前者是string,而后者是NULL,可見字符串('')、NULL值相等但類型不等。

      分清==(等于)和===(全等于)的區別

      兩者都屬于比較運算符,==(等于)只比較值是否相等,而===(全等于)則不但比較值是否相等,還會比較類型是否相等,它更為嚴格。

      分清include與require的區別

      include()與require()的功能也基本相同,但在用法上也有一些不同,include()是有條件包含函數,而require()則是無條件包含函數。例如在下面代碼中,如果變量$a為真,則將包含文件a.php。而require()則和include()不同,不管$a取何值,下面的代碼都會把文件a.php包含,比如:

      在錯誤處理方面,使用include語句,如果發生包含錯誤,程序將跳過include語句,雖然會顯示錯誤信息但是程序還是會繼續執行。但是,require語句會提示一個致命錯誤。

      注意isset和 empty的區別

      empty是判斷一個變量是否為“空”,而isset則是判斷一個變量是否已經被設置。

      分清self :: 和 this--> 的區別

      在訪問PHP類中的成員變量或方法時,如果被引用的變量或者方法被聲明成const(常量)或者static(靜態屬性),那么就必須使用域操作符::,而如果被引用的變量或者方法沒有被聲明成const或者static,那么就使用指向操作符->。

      foreach循環后留下懸掛指針

      這里有個問題很多人會迷糊。循環結束后,$value并未銷毀,$value其實是數組中最后一個元素的引用,這樣在后續對$value的使用中,如果不知道這一點,會引發一些莫名奇妙的錯誤:)看看下面這段代碼:

      上面代碼的運行結果如下:

      1,2,3

      1,2,3

      1,2,2

      你猜對了嗎?為什么是這個結果呢?

      我們來分析下。第一個循環過后,$value是數組中最后一個元素的引用。第二個循環開始:

      第一步:復制$arr[0]到$value(注意此時$value是$arr[2]的引用),這時數組變成[1,2,1]

      第二步:復制$arr[1]到$value,這時數組變成[1,2,2]

      第三步:復制$arr[2]到$value,這時數組變成[1,2,2]

      綜上,最終結果就是1,2,2

      避免這種錯誤最好的辦法就是在循環后立即用unset函數銷毀變量:

      忽略Unicode/UTF-8問題

      php編程中,在處理非ascii字符時,會遇到一些問題,要很小心的去對待,要不然就會錯誤遍地。舉個簡單的例子,strlen($name),如果$name包含非ascii字符,那結果就有些出乎意料。在此給出一些建議,盡量避免此類問題:

      最好使用mb_*函數來處理字符串,避免使用老的字符串處理函數。這里要確保PHP的“multibyte”擴展已開啟。

      數據庫和表最好使用unicode編碼。

      知道json_code()函數會轉換非ascii字符,但serialize()函數不會。

      php代碼源文件最好使用不含bom的utf-8格式。

    【php如何去除數組中相同的元素】相關文章:

    php合并數組中相同元素的方法07-17

    php統計數組元素個數的方法03-14

    PHP新手如何學習數組03-13

    PHP中刪除數組中特定元素的兩種方發01-13

    PHP中數組的分組排序07-26

    php中數組的定義方法08-12

    如何判斷php數組的維度08-04

    php刪除數組元素方法有哪些04-06

    PHP中數組的分組排序實例02-10

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人