發新話題

[分享] 《資訊分享》 PHP 手冊 - 函式庫 『陣列函式庫』

《分享》 PHP - 『陣列函式庫』 arsort --- 顛倒陣列的順序且維持索引值的關係

arsort

(PHP3 , PHP4)

arsort --- 顛倒陣列的順序且維持索引值的關係

語法 : void  arsort(array  array);

說明 :

此函式顛倒陣列元素的順序(z-a),且維持陣列元素與其索引值對應的關係,這個函式主要是用於需要將陣列元素的順序作顛倒的排列。

Example :

<?php

$fruits = array("d" => "lemon" , "a" => "orange" , "b" => "banana" , "c" => "apple");

arsort($fruits);

for(reset($fruits) ; $key = key($fruits) ; next($fruits)) {

echo "fruits[$key] = " .$fruits[$key]. "\n";

}

?>

此範例的結果為 :

fruits[a] = orange

fruits[d] = lemon

fruits = banana

fruits[c] = apple

由此可見陣列fruits已被顛倒了順序,而且索引值和元素之間的關係依然保持不變。

參考 : asort  rsort  ksort  sort

TOP

《分享》 PHP - 『陣列函式庫』 asort --- 將陣列排列且維持索引值的關係

asort

(PHP3 , PHP4)

asort --- 將陣列排列且維持索引值的關係

語法 : void  asort(array  array);

說明 :

此函式將陣列的元素由a-z重新排列,且保持原先索引值和元素的對應關係,這個函式主要是用於需要將陣列的元素重新排列。

Example :

<?php

$fruits = array("d" => "lemon" , "a" => "orange" , "b" => "banana" , "c" => "apple");

asort($fruits);

for(reset($fruits) ; $key = key($fruits) ; next($fruits)) {

echo "fruits[$key] = " .$fruits[$key]. "\n";

}

?>

此範例的結果為 :

fruits[c] = apple

fruits = banana

fruits[d] = lemon

fruits[a] = orange

由此可見陣列fruits已被重新排列,而且索引值和元素之間的關係依然保持不變。

參考 : arsort  rsort  ksort  sort

TOP

《分享》 PHP - 『陣列函式庫』 compact --- 建立陣列包含變數和它們的值

compact

(PHP4)

compact ---  建立陣列包含變數和它們的值

語法 : array compact(string varname | array varnames, [...] );

說明 :

此函式取一變數參數的數目,各各變數可以是包含變數名稱的字串或是變數的陣列名稱,陣列可以包含其它變數的陣列名稱在裡面。

此函式在符號(symbol)表格中尋找變數名稱,並且將它增加到輸出陣列,如此一來變數的名稱成為了索引值而變數的內容則成為了此索引值的值,此函式和extract( )相反,此函式傳回輸出陣列。

Example :

<?php

    $city = "San Francisco";

    $state = "CA";

    $event = "SIGGRAPH";

    $location_vars = array("city", "state");

    $result = compact("event", $location_vars);

?>

在此之後,$result將會是array ("event" => "SIGGRAPH", "city" => "San Francisco", "state" => "CA")

參考 : extract

TOP

《分享》 PHP - 『陣列函式庫』 count --- 計算變數中元素的數目

count

(PHP3 , PHP4)

count --- 計算變數中元素的數目

語法 : int  count(mixed  var);

說明 :

傳回參數var中,元素的數目,最典型的例子就是用來計算陣列中的元素數目。

如果變數沒有設定,則傳回 0,如果變數不是陣列則傳回 1。

警告 :

變數沒有設定時count( )可能傳回 0,但是變數的開頭是空陣列時,它也會傳回 0,可使用isset( )來測試。

參考 : sizeof( )  isset( )  is_array( )

TOP

《分享》 PHP - 『陣列函式庫』 current --- 傳回陣列中目前的元素

current

(PHP3 , PHP4)

current --- 傳回陣列中目前的元素

語法 : mixed  current(array  array);

說明 :

每個陣列都有內部指標指到它的現在元素,指標會指到最先插入陣列中的元素,直到程式執行到有移動指標的函式,此函式會傳回內部指標所指到的陣列元素,且不會移動指標的位置,若內部指標指到陣列元素之外,則傳回false。如果陣列包含空的元素(0或是"")則會傳回false。

參考 : end( )  next( )  prev( )  reset( )

TOP

《分享》 PHP - 『陣列函式庫』 each --- 從陣列傳回key/value對

each

(PHP3 , PHP4)

each --- 從陣列傳回key/value對

語法 : array  each(array  array);

說明 :

從陣列array傳回目前的key/value對,且向前移動陣列游標(cursor)。傳回的陣列有四個元素,分別是 0、1、key 和 value。元素 0 和 key 是陣列索引值的名稱,1 和 value 則是元素的資料。若陣列的內部指標指到陣列的末端,此函式會傳回false。

Example :

<?php

$foo = array("bob" , "fred" , "jussi" , "jouni");

$bar = each($foo);

?>

$bar現在包含了以下key/value對:

0 => 0
1 => 'bob'
key => 0
value => 'bob'
<?php

$foo = array("Robert" => "Bob" , "Seppo" => "Sepi");

$bar = each($foo);

?>

$bar現在包含了以下key/value對:

0 => 'Robert'
1 => 'Bob'
key => 'Robert'
value => 'Bob'
each通常和list一起使用,例如HTTP_POST_VARS

Example :

<?php

echo "Values submitted via POST method:<br>";

while(list($key , $val) = each($HTTP_POST_VARS)) {

echo "$key => $val<br>";

}

?>

each( )執行之後,陣列的游標(cursor)將會在陣列的下一個元素的左側,若是到達陣列的末端時,游標則在最後一個元素。

參考 : key( )  current( )  reset( )  next( )  prev( )

TOP

《分享》 PHP - 『陣列函式庫』 end - 設定陣列的內部指標指到最後的元素

end

(PHP3 , PHP4)

end --- 設定陣列的內部指標指到最後的元素

語法 : end(array  array);

說明 :

此函式設定陣列的內部指標到最後的元素

參考 : current( )  end( )  next( )  reset( )

TOP

《分享》 PHP - 『陣列函式庫』 extract --- 從陣列輸入變數到符號表格中

extract

(PHP3 >= 3.0.7 , PHP4)

array_extract ---  從陣列輸入變數到符號表格中

語法 : void extract(array var_array, int [extract_type] , string [prefix] );

說明 :

此函式從陣列輸入變數到目前的符號(symbol)表格中,它取陣列var_array並且看待索引值為變數名稱,值為變數值,它將各個key/value對建立一變數在目前符號表格中,以extract_type和prefix為條件。

extract( )檢查現存的變數,由參數extract決定碰撞時處理的方式為何,它可以是以下之一的值 :

EXTR_OVERWRITE

若發生碰撞則覆蓋過現存的變數

EXTR_SKIP

若發生碰撞則不覆蓋過現存的變數

EXTR_PREFIX_SAME

若發生碰撞則將參數prefix加在字首前面成為新變數

EXTR_PREFIX_ALL

把所有變數的字首都加上參數prefix

如果沒有指定參數extract_type,則使用EXTR_OVERWRITE。

注意 : 當extract_type是EXTR_PREFIX_SAME或是 EXTR_PREFIX_ALL時,才需要參數prefix。

Example :

<?php

    /* Suppose that $var_array is an array returned from   wddx_deserialize */

   $size = "large";

   $var_array = array("color" => "blue", "size"  => "medium","shape" => "sphere");

   extract($var_array, EXTR_PREFIX_SAME, "wddx");

   print "$color, $size, $shape, $wddx_size\n";
?>

上面的範例將會產生出 :

blue, large, sphere, medium

$size並沒有覆蓋過去,因為我們指定了EXTR_PREFIX_SAME,而$wddx_size中的結果已被建立,若是使用EXTR_SKIP,則$wddx_size不會被建立,若是使用EXTR_OVERWRITE則 $size的值就是medium,若是使用EXTR_PREFIX_ALL則將會有名稱為$wddx_color、$wddx_size和$wddx_shape的新變數存在。

TOP

《分享》 PHP - 『陣列函式庫』 in_array --- 搜尋陣列中值是否存在

in_array

(PHP4)

in_array --- 搜尋陣列中值是否存在

語法 : bool in_array(mixed needle, array haystack);

說明 :

此函式搜尋陣列haystack查看參數needle是否存在陣列之中,若在陣列之中找到則傳回true,否則傳回false。

Example :

<?php

   $os = array("Mac", "NT", "Irix", "Linux");

   if (in_array("Irix", $os))

          print "Got Irix";
?>

TOP

《分享》 PHP - 『陣列函式庫』 key --- 從陣列中取得索引值

key

(PHP3 , PHP4)

key ---  從陣列中取得索引值

語法 : mixed key(array array);

說明 :

此函式傳回目前陣列指標所指到的索引。

參考 : current( )  next( )

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。