溫故知新,PHP函式篇

2021-04-02 11:05:44 字數 3423 閱讀 6396

php 函式

在使用之前,先用函式檢測一下,是否已經載入了相應的模組:

if (extension_loaded('calendar'))

或者:if (function_exists(''))

陣列函式array

陣列可以用+號來追加。

<?php

$array1 = array();

$array2 = array(1 => "data");

$result = $array1 + $array2;

?>

array_change_key_case()

更改陣列的鍵名,本函式不改變量字索引

如果乙個陣列中的多個鍵名經過本函式後變成一樣的話(例如 "key" 和 "key"),最後乙個值將覆蓋其它的值。

array_filter()過濾陣列中的單元

function odd($var)

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);

print_r(array_filter($array1, "odd"));

array_filter() 依次將 input 陣列中的每個值傳遞到 callback 函式。如果 callback 函式返回 true,則 input 陣列的當前值會被包含在返回的結果陣列中。陣列的鍵名保留不變。

如果沒有提供 callback 函式,array_filter() 將刪除 input 中所有等值為 false 的條目。

這個功能可用於清除陣列中的一些為false的值

array_keys()

可以用來求出指定值在陣列中出現的位置/鍵名

$array = array("blue", "red", "green", "blue", "blue");

print_r(array_keys($array, "blue"));

array_map

本函式乙個有趣的用法是構造乙個陣列的陣列,這可以很容易的通過用 null 作為**函式名來實現。

<?php

$a = array(1, 2, 3, 4, 5);

$b = array("one", "two", "three", "four", "five");

$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);

print_r($d);

?>

輸出結果如下:

array

([0] => array

([0] => 1

[1] => one

[2] => uno

)...

array_multisort對多個陣列或多維陣列進行排序

關聯(string)鍵名保持不變,但數字鍵名會被重新索引。

輸入陣列被當成乙個表的列並以行來排序――這類似於 sql 的 order by 子句的功能。第乙個陣列是要排序的主要陣列。陣列中的行(值)比較為相同的話就按照下乙個輸入陣列中相應值的大小來排序,依此類推。

本例中 data 陣列中的每個單元表示乙個表中的一行。這是典型的資料庫記錄的資料集合。

<?php

$data = array('volume' => 67, 'edition' => 2);

$data = array('volume' => 86, 'edition' => 1);

$data = array('volume' => 85, 'edition' => 6);

$data = array('volume' => 98, 'edition' => 2);

$data = array('volume' => 86, 'edition' => 6);

$data = array('volume' => 67, 'edition' => 7);

本例中將把 volume 降序排列,把 edition 公升序排列。

現在有了包含有行的陣列,但是 array_multisort() 需要乙個包含列的陣列,因此用以下**來取得列,然後排序。

<?php

// 取得列的列表

foreach ($data as $key => $row)

// 將資料根據 volume 降序排列,根據 edition 公升序排列

// 把 $data 作為最後乙個引數,以通用鍵排序

array_multisort($volume, sort_desc, $edition, sort_asc, $data);

?>

如果要將改變後的結果返回到原有的陣列中,只需將原來的陣列變數增加到引數尾部如:

array_multisort($volume, sort_desc, $edition, sort_asc, $data);

本函式相當有用,為有助於理解,請再看下面這個名次排列例子:

<?php

$grade = array("score" => array(70, 95, 70.0, 60, "70"),

"name" => array("zhang san", "li si", "wang wu",

"zhao liu", "liu qi"));

array_multisort($grade["score"], sort_numeric, sort_desc,

// 將分數作為數值,由高到低排序

$grade["name"], sort_string, sort_asc);

// 將名字作為字串,由小到大排序

var_dump($grade);

?>

usort使用使用者自定義的比較函式對陣列中的值進行排序

本函式將用使用者自定義的比較函式對乙個陣列中的值進行排序。如果要排序的陣列需要用一種不尋常的標準進行排序,那麼應該使用此函式。

如果要對某個多維陣列按指定鍵名排序,可以用這個函式,例如:

<?php

function cmp($a, $b)

usort($fruits, "cmp");

while (list($key, $value) = each($fruits))

?>

自然排序natsort()

用於模仿人的習慣排序,例如檔名的img1.jpg,img10.jpg,img12.jpg,img2.jpg,

將會按這樣的順序來排:img1.jpg,img2.jpg,img10.jpg,img12.jpg,而不是用sort()所得到的這樣的結果:

jquery溫故知新 核心篇

1.jquery selector,context 在文件的第乙個表單中,查詢所有的單選按鈕 即 type 值為 radio 的 input 元素 input radio document.forms 0 在乙個由 ajax 返回的 xml 文件中,查詢所有的 div 元素。div xml.resp...

溫故知新 ROWTYPE

rowtype 相當於資料庫表裡的一行資料記錄的變數型別。declare 定義乙個emp表裡的一行記錄的資料型別的變數 v emp emp rowtype begin 查詢的emp表裡的資料列必須與v emp的列順序以及個數保持一致 select empno,ename,job,mgr,hireda...

vue 溫故知新

v cloak指令 解決變數閃爍問題 v if isshow 是插入或刪除節點 v show isshow 是隱藏或顯示節點 v bind data m msg 或 data m msg 繫結屬性 v bind key v.id 繫結乙個資料唯一值,用於虛擬dom演算法,優化渲染效率 v on cl...