• 當前位置:首頁 > IT技術 > 編程語言 > 正文

    PHP 零基礎入門筆記(13):數組相關函數
    2022-04-29 13:54:34


    數組相關函數

    自定義數組打印函數,便于查看

    function print_array($array){
    foreach($array as $key => $value){
    echo "$key => $value ";
    }
    }

    排序函數

    按照 ASCII 碼排序

    ??sort?? 對 array 本身按照值(value)升序排序。(下標重排)

    sort(array &$array, int $flags = SORT_REGULAR): bool


    // eg:
    $arr = ['Tom', 'Jack', 'Steve'];

    sort($arr);

    print_array($arr);
    // 0 => Jack
    // 1 => Steve
    // 2 => Tom

    ??rsort?? 對 array 本身按照值(value)降序排序。

    rsort(array &$array, int $flags = SORT_REGULAR): bool


    // eg:
    $arr = ['Tom', 'Jack', 'Steve'];

    rsort($arr);

    print_array($arr);
    // 0 => Tom
    // 1 => Steve
    // 2 => Jack

    ??asort?? 對 array 自身按照升序進行排序(下標保留)

    asort(array &$array, int $flags = SORT_REGULAR): bool


    // eg:
    $arr = ['Tom', 'Jack', 'Steve'];

    asort($arr);

    print_array($arr);
    // 1 => Jack
    // 2 => Steve
    // 0 => Tom

    ??arsort?? 對 array 本身按照降序排序

    arsort(array &$array, int $flags = SORT_REGULAR): bool


    // eg:
    $arr = ['Tom', 'Jack', 'Steve'];

    arsort($arr);

    print_array($arr);
    // 0 => Tom
    // 2 => Steve
    // 1 => Jack

    ??ksort?? 對 array 本身進行按鍵(key)升序排序。

    ksort(array &$array, int $flags = SORT_REGULAR): bool


    // eg:
    $arr = ['Tom', 'Jack', 'Steve'];

    ksort($arr);

    print_array($arr);
    // 0 => Tom
    // 1 => Jack
    // 2 => Steve

    ??krsort?? 對 array 本身按照鍵(key)降序排序。

    krsort(array &$array, int $flags = SORT_REGULAR): bool


    // eg:
    $arr = ['Tom', 'Jack', 'Steve'];

    krsort($arr);

    print_array($arr);
    // 2 => Steve
    // 1 => Jack
    // 0 => Tom

    ??shuffle?? 隨機打亂

    shuffle(array &$array): bool


    // eg:
    $arr = ['Tom', 'Jack', 'Steve'];

    shuffle($arr);

    print_array($arr);
    // 0 => Jack
    // 1 => Steve
    // 2 => Tom

    指針函數

    reset 將 array 的內部指針倒回到第一個單元并返回第一個數組單元的值。

    reset(array|object &$array): mixed

    end 將 array 的內部指針移動到最后一個單元并返回其值。

    end(array|object &$array): mixed

    next 將數組中的內部指針向前移動一位

    next(array|object &$array): mixed

    prev 將數組的內部指針倒回一位

    prev(array|object &$array): mixed

    current 返回數組中的當前值

    current(array|object $array): mixed

    key 返回數組中當前單元的鍵名。

    key(array|object $array): int|string|null


    注意:next 和 prev 移動指針,可能移出數組,只能通過 end 或者 reset 重置指針


    示例

    $arr = [1, 3, 5, 7, 9];

    echo next($arr);
    echo next($arr);
    echo prev($arr);
    echo current($arr);
    echo key($arr);
    echo reset($arr);
    echo end($arr);
    // 3533119

    其他函數

    count 統計數組、Countable 對象中所有元素的數量

    count(Countable|array $value, int $mode = COUNT_NORMAL): int

    // eg:
    $arr = [1, 2, 3, 4, 5];

    echo count($arr);
    // 5

    array_push 將 array 當成一個棧,并將傳入的變量壓入 array 的末尾。

    array_push(array &$array, mixed $value1, mixed $... = ?): int

    // 和如下效果相同:
    $array[] = $var;

    array_pop 彈出并返回 array 最后一個元素的值

    array_pop(array &$array): mixed

    array_shift 將 array 的第一個單元移出并作為結果返回

    array_shift(array &$array): mixed

    array_unshift 在數組開頭插入一個或多個單元

    array_unshift(array &$array, mixed ...$values): int

    數據結構

    • 棧 壓棧,FILO先進后出
    • 隊列 排隊,FIFO 先進先出

    實現棧:

    • 前面 array_unshift/array_shift
    • 后面 array_push/array_pop
    <?php

    $arr = [];

    // 入棧
    array_push($arr, 1);
    array_push($arr, 2);
    array_push($arr, 3);

    // 出棧
    echo array_pop($arr), array_pop($arr), array_pop($arr);
    // 321

    實現隊列:

    • 后進前出 array_push/array_shift
    • 前進后出 array_unshift/array_pop
    <?php

    $arr = [];

    // 入隊
    array_push($arr, 1);
    array_push($arr, 2);
    array_push($arr, 3);

    // 出隊
    echo array_shift($arr), array_shift($arr), array_shift($arr);
    // 123

    array_reverse 返回一個單元為相反順序的新數組

    array_reverse(array $array, bool $preserve_keys = false): array

    // eg
    $arr = [1, 2, 3, 4, 5];

    print_array(array_reverse($arr));
    // 0 => 5
    // 1 => 4
    // 2 => 3
    // 3 => 2
    // 4 => 1

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

    in_array(mixed $needle, array $haystack, bool $strict = false): bool

    // eg
    $arr = [1, 2, 3, 4, 5];

    var_dump(in_array(5, $arr));
    // bool(true)

    array_keys 返回數組中部分的或所有的鍵名

    array_keys(array $array): array

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


    // eg
    $arr = ['Tom', 'Jack', 'Steve'];

    echo json_encode(array_keys($arr));
    // [0,1,2]

    array_values 返回 input 數組中所有的值并給其建立數字索引。

    array_values(array $array): array

    // eg
    $arr = ['Tom', 'Jack', 'Steve'];

    echo json_encode(array_values($arr));
    // ["Tom","Jack","Steve"]



    本文摘自 :https://blog.51cto.com/u

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码