php中的常用函數

來源:互聯網
上載者:User

標籤:print   toolbar   fse   har   符號   i++   value   根據   tar   

先聲明一下,copy來的,各位看官請勿吐槽,我是留給自己回顧和補充知識點用的。

PHP資料類型包括8種

 相對應的判斷函數有:is_bool(),is_int(),is_integer(),is_long()(同樣是判斷整型),is_real()(同樣是判斷浮點型),is_float(),is_string(),is_array(),is_object(),is_null()用來檢測變數是否為 NULL  其他常用函數

array_values() 函數可以返回數組中所有的值並給其建立數字索引

<?php$arr = [0,1,2,3];unset($arr[1]);$arr = array_values($arr);/*array (size=3)  0 => int 0  1 => int 2  2 => int 3 */var_dump($arr);?>

list()函數可以將數組中的值賦給變數

list($a,$b,$c) = [1,2,3];echo $a;//1echo $b;//2echo $c;//3// 僅接收其中一個list(, , $power) = [1,2,3];echo $power;//3// list() 不能對字串起作用list($bar) = "abcde";var_dump($bar); // NULL

回呼函數是指將一個函數的函數名作為參數傳到另一個函數中

function demo($num,$n){    for($i=0;$i<$num;$i++){        if($n($i)){            echo $i.‘<br>‘;        }    }}function test($i){    if($i%5){        return true;    }}demo(20,‘test‘);

 

 

遞迴函式

<?php    function test( $n ) {                    echo $n;         if($n>0){            test($n-1);                           }           echo $n;     }    test(5);//543210012345?>

 

 

 

索引值操作

array_values:array_values() 返回 input 數組中所有的值並給其建立數字索引(文檔上面有介紹)

array_keys:array_keys() 返回 input 數組中的數字或者字串的鍵名

array array_keys ( array $array [, mixed $search_value [, bool $strict = false ]] )

如果指定了選擇性參數 search_value,則只返回該值的鍵名。否則 input 數組中的所有鍵名都會被返回

如果指定了選擇性參數 strict,表示判斷在搜尋的時候是否該使用嚴格的比較(===)

<?php$array = array(0 => 100, "color" => "red");//Array ( [0] => 0 [1] => color ) print_r(array_keys($array));$array = array("blue", "red", "green", "blue", "blue");// Array ( [0] => 0 [1] => 3 [2] => 4 ) print_r(array_keys($array, "blue"));$array = array("color" => array("blue", "red", "green"),               "size"  => array("small", "medium", "large"));Array ( [0] => color [1] => size )print_r(array_keys($array));?>

in_array:in_array — 檢查數組中是否存在某個值

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

如果第三個參數 strict 的值為 TRUE 則 in_array() 函數還會檢查 needle 的類型是否和 haystack 中的相同

<?php$os = array("Mac", "NT", "Irix", "Linux");if (in_array("Irix", $os)) {    //Got Irix    echo "Got Irix";}if (in_array("mac", $os)) {    echo "Got mac";}?>

array_flip:array_flip — 交換數組中的鍵和值,成功時返回交換後的數組,如果失敗返回 NULL

array array_flip ( array $trans )

array_flip() 返回一個反轉後的 array,例如 trans 中的鍵名變成了值,而 trans 中的值成了鍵名

如果同一個值出現了多次,則最後一個鍵名將作為它的值,所有其它的都丟失了

[注意]trans中的值需要能夠作為合法的鍵名,例如需要是 integer 或者 string。如果值的類型不對將發出一個警告,並且有問題的鍵/值對將不會反轉

<?php$trans = array("a" => 1, "b" => 1, "c" => 2);$trans = array_flip($trans);//Array ( [1] => b [2] => c )print_r($trans);?>

array_reverse:array_reverse — 返回一個單元順序相反的數組

array array_reverse ( array $array [, bool $preserve_keys = false ] )

如果參數preserve_keys設定為 TRUE 會保留數位鍵。非數位鍵則不受這個設定的影響,總是會被保留

array_count_values:array_count_values — 統計數組中所有的值出現的次數

array array_count_values ( array $input )
<?php$array = array(1, "hello", 1, "world", "hello");//Array ( [1] => 2 [hello] => 2 [world] => 1 )print_r(array_count_values($array));?>

array_unique:array_unique — 移除數組中重複的值

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )

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

<?php$input = array("a" => "green", "red", "b" => "green", "blue", "red");$result = array_unique($input);//Array ( [a] => green [0] => red [1] => blue )print_r($result);?>

array_sum:array_sum — 計算數組中所有值的和,array_sum() 將數組中的所有值的和以整數或浮點數的結果返回

<?php$a = array(2, 4, 6, 8);//sum(a) = 20echo "sum(a) = " . array_sum($a) . "\n";$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);//sum(b) = 6.9echo "sum(b) = " . array_sum($b) . "\n";?>

array_merge:array_merge — 合并一個或多個數組

array_intersect:array_intersect — 計算數組的交集

array array_intersect ( array $array1 , array $array2 [, array $ ... ] )

 array_intersect() 返回一個數組,該數組包含了所有在 array1 中也同時出現在所有其它參數數組中的值

 [注意]鍵名保留不變

<?php$array1 = array("a" => "green", "red", "blue");$array2 = array("b" => "green", "yellow", "red");$result = array_intersect($array1, $array2);//Array ( [a] => green [0] => red )print_r($result);?>

array_diff:array_diff — 計算數組的差集

array array_diff ( array $array1 , array $array2 [, array $... ] )

對比返回在 array1 中但是不在 array2 及任何其它參數數組中的值

<?php$array1 = array("a" => "green", "red", "blue", "red");$array2 = array("b" => "green", "yellow", "red");$result = array_diff($array1, $array2);//Array ( [1] => blue )print_r($result);?>

array_fill:array_fill — 用給定的值填充數組,返回填充後的數組

array array_fill ( int $start_index , int $num , mixed $value )

 array_fill() 用 value 參數的值將一個數組填充 num 個條目,鍵名由 start_index 參數指定的開始

?php$a = array_fill(5, 6, ‘banana‘);$b = array_fill(-2, 4, ‘pear‘);//Array ( [5] => banana [6] => banana [7] => banana [8] => banana [9] => banana [10] => banana )print_r($a);//Array ( [-2] => pear [0] => pear [1] => pear [2] => pear )print_r($b);?>

 

 棧和隊列

array_pop:array_pop — 將數組最後一個單元彈出(出棧)

mixed array_pop ( array &$array )

array_pop() 彈出並返回 array 數組的最後一個單元,並將數組 array 的長度減一。如果 array 為空白(或者不是數組)將返回 NULL

<?php$stack = array("orange", "banana", "apple", "raspberry");$fruit = array_pop($stack);//Array ( [0] => orange [1] => banana [2] => apple )print_r($stack);?>

array_push:array_push — 將一個或多個單元壓入數組的末尾(入棧),返回處理之後數組的元素個數

int array_push ( array &$array , mixed $var [, mixed $... ] )

array_push() 將 array 當成一個棧,並將傳入的變數壓入 array 的末尾。array 的長度將根據入棧變數的數目增加

<?php$stack = array("orange", "banana");array_push($stack, "apple", "raspberry");//Array ( [0] => orange [1] => banana [2] => apple [3] => raspberry )print_r($stack);?>

array_shift:array_shift — 將數組開頭的單元移出數組

mixed array_shift ( array &$array )

array_shift() 將 array 的第一個單元移出並作為結果返回,將 array 的長度減一併將所有其它單元向前移動一位。所有的數字鍵名將改為從零開始計數,文字鍵名將不變

<?php$stack = array("orange", "banana", "apple", "raspberry");$fruit = array_shift($stack);//Array ( [0] => banana [1] => apple [2] => raspberry )print_r($stack);?>

array_unshift:array_unshift — 在數組開頭插入一個或多個單元,返回 array 數組新的單元數目

int array_unshift ( array &$array , mixed $var [, mixed $... ] )

  array_unshift() 將傳入的單元插入到 array 數組的開頭。注意單元是作為整體被插入的,因此傳入單元將保持同樣的順序。所有的數值鍵名將修改為從零開始重新計數,所有的文字鍵名保     持不變

<?php$queue = array("orange", "banana");array_unshift($queue, "apple", "raspberry");//Array ( [0] => apple [1] => raspberry [2] => orange [3] => banana )print_r($queue);?>

 

 

trim():該函數用於返回去掉字串首尾空格的字串

ltrim():ltrim函數用於刪除字串開頭的空白字元(或其他字元)

rtrim():rtrim函數用於刪除字串末端的空白字元(或者其他字元)

strtolower():strtolower — 將字串轉化為小寫

strtoupper():strtoupper — 將字串轉化為大寫

ucfirst():ucfirst — 將字串的首字母轉換為大寫

ucwords():ucwords — 將字串中每個單詞的首字母轉換為大寫

htmlspecialchars():把指定特殊符號轉換成實體

addslashes():使用反斜線引用字串,返回字串

stripslashes(): 反引用一個引用字串

strrev():strrev — 反轉字串

string strrev ( string $string )
<?phpecho strrev("Hello world!"); // 輸出 "!dlrow olleH"?>

strlen():strlen — 擷取字串長度

md5():計算字串的 MD5 散列值

strstr():尋找字串的首次出現,返回haystack字串從needle第一次出現的位置開始到haystack結尾的字串

string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

before_needle若為TRUE,strstr()將返回needle在haystack中的位置之前的部分

<?php$email  = ‘[email protected]‘;$domain = strstr($email, ‘@‘);echo $domain; // @example.com$user = strstr($email, ‘@‘, true); echo $user; //name?>

strpos():strpos()尋找字串首次出現的位置

mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
<?php// 忽視位置位移量之前的字元進行尋找$newstring = ‘abcdef abcdef‘;$pos = strpos($newstring, ‘a‘, 1); // $pos = 7, 不是 0?>

strrpos():strrpos()計算指定字串在目標字串中最後一次出現的位置

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
<?php$foo = "0123456789a123456789b123456789c";var_dump(strrpos($foo, ‘7‘, -5));  // 從尾部第 5 個位置開始尋找                                   // 結果: int(17)var_dump(strrpos($foo, ‘7‘, 20));  // 從第 20 個位置開始尋找                                   // 結果: int(27)var_dump(strrpos($foo, ‘7‘, 28));  // 結果: bool(false)?>

 

 

substr():substr()返回字串的子串

string substr ( string $string , int $start [, int $length ] )
<?php$rest = substr("abcdef", -1);    // 返回 "f"$rest = substr("abcdef", -2);    // 返回 "ef"$rest = substr("abcdef", -3, 1); // 返回 "d"?><?php$rest = substr("abcdef", 0, -1);  // 返回 "abcde"$rest = substr("abcdef", 2, -1);  // 返回 "cde"$rest = substr("abcdef", 4, -4);  // 返回 ""$rest = substr("abcdef", -3, -1); // 返回 "de"?>

str_replace():str_replace()返回一個字串或者數組。該字串或數組是將 subject 中全部的 search 都被 replace 替換之後的結果

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

 如果count被指定,它的值將被設定為替換髮生的次數

<?php// 賦值: <body text=‘black‘>$bodytag = str_replace("%body%", "black", "<body text=‘%body%‘>");// 賦值: Hll Wrld f PHP$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");// 賦值: You should eat pizza, beer, and ice cream every day$phrase  = "You should eat fruits, vegetables, and fiber every day.";$healthy = array("fruits", "vegetables", "fiber");$yummy   = array("pizza", "beer", "ice cream");$newphrase = str_replace($healthy, $yummy, $phrase);// 賦值: 2$str = str_replace("ll", "", "good golly miss molly!", $count);echo $count;?>
分割:explode()

explode()使用一個字串分割另一個字串,返回由字串組成的數組,每個元素都是string的一個子串,它們被字串delimiter作為邊界點分割出來

array explode ( string $delimiter , string $string [, int $limit ] )

如果設定了limit參數並且是正數,則返回的數組包含最多limit個元素,而最後那個元素將包含string的剩餘部分;如果limit參數是負數,則返回除了最後的-limit個元素外的所有元素;如果limit是0,則會被當做1

<?php// 樣本 1$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";$pieces = explode(" ", $pizza);echo $pieces[0]; // piece1echo $pieces[1]; // piece2// 樣本 2$data = "foo:*:1023:1000::/home/foo:/bin/sh";list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);echo $user; // fooecho $pass; // *?>

implode():implode()將一個一維數組的值轉化為字串

string implode ( string $glue , array $pieces )string implode ( array $pieces )
<?php$array = array(‘lastname‘, ‘email‘, ‘phone‘);$comma_separated = implode(",", $array);echo $comma_separated; // lastname,email,phone// Empty string when using an empty array:var_dump(implode(‘hello‘, array())); // string(0) ""?>

 

 

php中的常用函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.