• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    介紹幾個array庫的新函數

    發布: 2007-7-14 19:53 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 8次 | 進入軟件測試論壇討論

    領測軟件測試網


    我們手頭的PHP資料不多,大家是不是都有一份php4gb.chm。我最欣賞它里面的函數庫部分了,真正的在線幫助。但是PHP發展的腳步實在太快了,你睢,我最近在www.php.net/manual/ 又找到了一些擴展的數組函數。

    下面我把它們介紹給大家吧,我的英文水平不高,有譯的不對的地方,請指正。
    格式是這樣的:

    函數名 支持版本

    函數聲明
    說明及參數、返回值

    例子

    OK,Let's go.

    //*************************
    array_flip (PHP4 >= 4.0b4)

    array array_flip (array trans)

    將數組trans的key、value交換,就是key變value,而value變key了。
    返回完成處理的數組。

    例:
    $a[0]="abc";
    $a[1]="def";
    After an array_flip() you get:
    $a["abc"]=0; $a["def"]=1;

    //***************************
    array_count_values (PHP4 >= 4.0b4)

    array array_count_values (array input)
    統計input數組中各個值的個數。返回一個數組,以input的值做為key,以出現個數為value的新數組。

    例:
    $array = array (1, "hello", 1, "world", "hello");
    array_count_values ($array);
    // returns array (1=>2, "hello"=>2, "world"=>1)

    //*****************************
    array_merge (PHP4 )

    array array_merge (array array1, array array2 [, array ...])
    合并多個數組,把array2的內容加在array1的后面。返回結果數組。
    如果是關聯數組,以字串為key,出現同名的key,則后面的會覆蓋前面的,而下標數組不會出現覆蓋的現象,只是添加在后面。

    例:
    $array1 = array ("color" => "red", 2, 4);
    $array2 = array ("a", "b", "color" => "green", "shape" => "trapezoid", 4);
    array_merge ($array1, $array2);
    //Resulting array will be array("color" => "green", 2, 4, "a", "b", "shape" => "trapezoid", 4).

    See also array_merge_recursive().

    //******************************
    array_merge_recursive (PHP4 >= 4.0.1)

    array array_merge_recursive (array array1, array array2 [, array ...])
    遞歸合并數組,與上個函數基本類似。區別在于,在關聯數組方面,它不是簡單地把相同的key合并,還是生成一個二維數組來合并這相同key的value。(表達不清,不好意思,看例子吧)。

    例:
    $ar1 = array ("color" => array ("favorite" => "red"), 5);
    $ar2 = array (10, "color" => array ("favorite" => "green", "blue"));
    $result = array_merge_recursive ($ar1, $ar2);

    //Resulting array will be array ("color" => array ("favorite" => array ("red", "green"), "blue"), 5, 10).

    明白了嗎?red,green被合并成一個新的數組了,放在favorite里。

    See also array_merge().

    //*******************************
    array_intersect (PHP4 >= 4.0.1)

    array array_intersect (array array1, array array2 [, array ...])
    取多個數組的交集,返回包含交集元素的新數組。
    以array1為基礎的,所以了,如果是關聯數組,那key值就是array1的了。見例子。

    例:
    $array1 = array ("a" => "green", "red", "blue");
    $array2 = array ("b" => "green", "yellow", "red");
    $result = array_intersect ($array1, $array2);
    //This makes $result have array ("a" => "green", "red");

    See also array_diff().

    //*******************************************
    array_diff (PHP4 >= 4.0.1)

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

    與上個函數相反,這是取多個數組的差集了。

    例:
    $array1 = array ("a" => "green", "red", "blue");
    $array2 = array ("b" => "green", "yellow", "red");
    $result = array_diff ($array1, $array2);

    //This makes $result have array ("blue");

    See also array_intersect().

    //*******************************************
    array_keys (PHP4 )
    array_values (PHP4)

    array array_keys (array input [, mixed search_value])
    array array_values (array input)

    這兩個函數有關系,放在一起了。
    array_keys可以取出數組所有的key,如果定義了search_value,就只取相應的key值。
    array_values取出數組input的所有value值。

    例:

    $array = array ("size" => "XL", "color" => "gold");
    array_values ($array); // returns array ("XL", "gold")

    $array = array (0 => 100, "color" => "red");
    array_keys ($array); // returns array (0, "color")

    $array = array ("blue", "red", "green", "blue", "blue");
    array_keys ($array, "blue"); // returns array (0, 3, 4)

    //**********************************************
    array_multisort (PHP4 >= 4.0b4)

    bool array_multisort (array ar1 [, mixed arg [, mixed ... [, array ...]]])

    對多個數組同時進行排序,或是對一個多維數組進行多個維的排序。(很有用哦,我上回在中文用戶就問了這個問題)。

    輸入的數組被處理成表的列,按行來排序,有點類似于sql語句中的order by條件。
    這個函數的參數不常見,但是很靈活?墒且粋數組或是下面這幾個標志。

    SORT_ASC - 升序

    SORT_DESC - 降序

    SORT_REGULAR - 常規比較

    SORT_NUMERIC - 數值比較

    SORT_STRING - 字串比較

    一個數組不可以同時給兩種類型的排序標志(這個當然了)。每個數組后的標志只對此數組有效。缺省為 SORT_ASC 和 SORT_REGULAR 。

    如果正常,返回true,否則返回false。

    例1:
    $ar1 = array ("10", 100, 100, "a");
    $ar2 = array (1, 3, "2", 1);
    array_multisort ($ar1, $ar2);

    //結果是 $ar1 = 10, "a", 100, 100. $ar2= 1, 1, 2, "3".

    例2:
    $ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
    array_multisort ($ar[0], SORT_ASC, SORT_STRING,
    $ar[1], SORT_NUMERIC, SORT_DESC);

    // after sorting, the first array will contain 10, 100, 100, "a" (it was sorted as strings in ascending order), and the second one will contain 1, 3, "2", 1 (sorted as numbers, in descending order).

    不過,上面這個例子我試了一下,不行,會報參數3要求是數組的錯誤。(???這個俺也不知了)

    如果你直接用 array_multisort($ar[0],SORT_ASC,$ar[1],SORT_DESC);可以。

    //******************************************
    array_pop (PHP4 )
    array_push
    array_shift
    array_unshift

    mixed array_pop (array array)
    int array_push (array array, mixed var [, mixed ...])
    mixed array_shift (array array)
    int array_unshift (array array, mixed var [, mixed ...])

    數組作為棧來用的函數。具體使用比較簡單了:

    pop彈出最后一個元素,返回元素值。
    push把參數var加入數組最后。返回位置。與$array[]=$var 功能相同。返回數組新的元素個數。
    shift把數組第一個元素彈出,其它順移一位,相當于左位移。但數組元素個數減小1。返回彈出的元素。
    unshift在數組前面加入一個或多個元素,返回新的數組個數。

    Example 1. Array_pop() example

    $stack = array ("orange", "apple", "raspberry");
    $fruit = array_pop ($stack);
    //After this, $stack has only 2 elements: "orange" and "apple", and $fruit has "raspberry".

    Example 2. Array_push() example

    $stack = array (1, 2);
    array_push ($stack, "+", 3);
    //This example would result in $stack having 4 elements: 1, 2, "+", and 3.

    Example 3. Array_shift() example

    $args = array ("-v", "-f");
    $opt = array_shift ($args);
    //This would result in $args having one element "-f" left, and $opt being "-v".

    Example 4. Array_unshift() example

    $queue = array ("p1", "p3");
    array_unshift ($queue, "p4", "p5", "p6");
    //This would result in $queue having 5 elements: "p4", "p5", "p6", "p1", and "p3".

    //***************************************
    array_rand (PHP4 >= 4.0.0)

    mixed array_rand (array input [, int num_req])

    從數組中隨機選出一個或多個元素。參數num_req給出要選出的元素個數,缺省為1。
    返回一個數組,內容是所選出元素的key。

    事先要先調用 srand() 來產生隨機數種子。

    Example 1. Array_rand() example

    srand ((double) microtime() * 10000000);
    $input = array ("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
    $rand_keys = array_rand ($input, 2);
    print $input[$rand_keys[0]]."n";
    print $input[$rand_keys[1]]."n";

    //**************************************
    array_reverse (PHP4 >= 4.0b4)

    array array_reverse (array input)
    返回一個新數組,把input的元素取相反次序。

    Example 1. Array_reverse() example

    $input = array ("php", 4.0, array ("green", "red"));
    $result = array_reverse ($input);
    //This makes $result have array (array ("green", "red"), 4.0, "php").

    //****************************************

    array_slice (PHP4 )

    array array_slice (array array, int offset [, int length])
    取一個數組的一部分,從offset開始,長度為length,缺省為到結束。
    返回一個新數組。

    offset若為正,從數組的offset位置開始,若為負,則從數組的結尾倒數算起。
    length為正,是新數組的長度,為負,則也是從數組的結尾倒數。

    Example 1. Array_slice() examples

    $input = array ("a", "b", "c", "d", "e");

    $output = array_slice ($input, 2); // returns "c", "d", and "e"
    $output = array_slice ($input, 2, -1); // returns "c", "d"
    $output = array_slice ($input, -2, 1); // returns "d"
    $output = array_slice ($input, 0, 3); // returns "a", "b", and "c"

    //******************************************

    array_splice (PHP4 )

    array array_splice (array input, int offset [, int length [, array replacement]])

    從數組中移去從offset開始,長度為length的部份,如果給出了replacement[]參數,則用此參數來取代移去部份。

    對于offset、length的處理判斷,與上例相同。
    如果有replacement參數,則用此參數來取代移去部份,如果沒有移去,則在offset位置插入。

    以下操作等效:
    array_push ($input, $x, $y) array_splice ($input, count ($input), 0,
    array ($x, $y))
    array_pop ($input) array_splice ($input, -1)
    array_shift ($input) array_splice ($input, 0, 1)
    array_unshift ($input, $x, $y) array_splice ($input, 0, 0, array ($x, $y))
    $a[$x] = $y array_splice ($input, $x, 1, $y)

    返回一個包含移去元素以后的新數組。

    Example 1. Array_splice() examples

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

    array_splice ($input, 2); // $input is now array ("red", "green")
    array_splice ($input, 1, -1); // $input is now array ("red", "yellow")
    array_splice ($input, 1, count($input), "orange");
    // $input is now array ("red", "orange")
    array_splice ($input, -1, 1, array("black", "maroon"));
    // $input is now array ("red", "green",
    // "blue", "black", "maroon")

    //***********************
    array_unique (PHP4 >= 4.0.1)

    array array_unique (array array)

    從一個數組中移去重復的值。返回新的數組。
    如果是關聯數組,key以第一個為準。

    Example 1. Array_unique() example

    $input = array ("a" => "green", "red", "b" => "green", "blue", "red");
    $result = array_unique ($input);
    //This makes $result have array ("a" => "green", "red", "blue");

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>