當(dāng)前位置:首頁 > IT技術(shù) > 編程語言 > 正文

PHP 零基礎(chǔ)入門筆記(13):數(shù)組相關(guān)函數(shù)
2022-04-29 13:54:34


數(shù)組相關(guān)函數(shù)

自定義數(shù)組打印函數(shù),便于查看

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

排序函數(shù)

按照 ASCII 碼排序

??sort?? 對(duì) array 本身按照值(value)升序排序。(下標(biāo)重排)

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?? 對(duì) 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?? 對(duì) array 自身按照升序進(jìn)行排序(下標(biāo)保留)

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?? 對(duì) 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?? 對(duì) array 本身進(jìn)行按鍵(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?? 對(duì) 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?? 隨機(jī)打亂

shuffle(array &$array): bool


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

shuffle($arr);

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

指針函數(shù)

reset 將 array 的內(nèi)部指針倒回到第一個(gè)單元并返回第一個(gè)數(shù)組單元的值。

reset(array|object &$array): mixed

end 將 array 的內(nèi)部指針移動(dòng)到最后一個(gè)單元并返回其值。

end(array|object &$array): mixed

next 將數(shù)組中的內(nèi)部指針向前移動(dòng)一位

next(array|object &$array): mixed

prev 將數(shù)組的內(nèi)部指針倒回一位

prev(array|object &$array): mixed

current 返回?cái)?shù)組中的當(dāng)前值

current(array|object $array): mixed

key 返回?cái)?shù)組中當(dāng)前單元的鍵名。

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


注意:next 和 prev 移動(dòng)指針,可能移出數(shù)組,只能通過 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

其他函數(shù)

count 統(tǒng)計(jì)數(shù)組、Countable 對(duì)象中所有元素的數(shù)量

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

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

echo count($arr);
// 5

array_push 將 array 當(dāng)成一個(gè)棧,并將傳入的變量壓入 array 的末尾。

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

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

array_pop 彈出并返回 array 最后一個(gè)元素的值

array_pop(array &$array): mixed

array_shift 將 array 的第一個(gè)單元移出并作為結(jié)果返回

array_shift(array &$array): mixed

array_unshift 在數(shù)組開頭插入一個(gè)或多個(gè)單元

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

數(shù)據(jù)結(jié)構(gòu)

  • 棧 壓棧,F(xiàn)ILO先進(jìn)后出
  • 隊(duì)列 排隊(duì),F(xiàn)IFO 先進(jìn)先出

實(shí)現(xiàn)棧:

  • 前面 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

實(shí)現(xiàn)隊(duì)列:

  • 后進(jìn)前出 array_push/array_shift
  • 前進(jìn)后出 array_unshift/array_pop
<?php

$arr = [];

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

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

array_reverse 返回一個(gè)單元為相反順序的新數(shù)組

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 檢查數(shù)組中是否存在某個(gè)值

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 返回?cái)?shù)組中部分的或所有的鍵名

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 數(shù)組中所有的值并給其建立數(shù)字索引。

array_values(array $array): array

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

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



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

開通會(huì)員,享受整站包年服務(wù)立即開通 >