每天五個函式記憶

2022-02-24 18:21:54 字數 3843 閱讀 8464

2023年3月20日 星期三

array_walk — 使用使用者自定義函式對陣列中的每個元素做**處理

array_walk( array&$array,callable$callback[,mixed$userdata=null] ) : bool

將使用者自定義函式funcname應用到array陣列中的每個單元。

array_walk()不會受到array內部陣列指標的影響。array_walk()會遍歷整個陣列而不管指標的位置。

典型情況下callback接受兩個引數。array引數的值作為第乙個,鍵名作為第二個。

note:

如果callback需要直接作用於陣列中的值,則給callback的第乙個引數指定為引用。這樣任何對這些單元的改變也將會改變原始陣列本身。

note:

引數數量超過預期,傳入內建函式 (例如strtolower()),        將丟擲警告,所以不適合當做funcname。

只有array的值才可以被改變,使用者不應在**函式中改變該陣列本身的結構。例如增加/刪除單元,unset  單元等等。如果array_walk()作用的陣列改變了,則此函式的的行為未經定義,且不可預期。

如果提供了可選引數userdata,將被作為第三個引數傳遞給  callbackfuncname。

<?php 

$fruits = array("

d" => "

lemon

", "

a" => "

orange

", "

b" => "

banana

", "

c" => "");

function test_alter(&$value, $key, $prefix)

function test_print($value, $key)

echo

"before ...:"

;array_walk($fruits,

'test_print');

echo ''

;array_walk($fruits,

'test_alter

', '

fruit');

echo

"... and after:";//

改變原始陣列本身

array_walk($fruits,

'test_print

');

輸出

array_merge — 合併乙個或多個陣列

array_merge( array$array1[, array$...] ) : array

array_merge()將乙個或多個陣列的單元合併起來,乙個陣列中的值附加在前乙個陣列的後面。返回作為結果的陣列。

如果輸入的陣列中有相同的字串鍵名,則該鍵名後面的值將覆蓋前乙個值。然而,如果陣列包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。

如果只給了乙個陣列並且該陣列是數字索引的,則鍵名會以連續方式重新索引。

<?php 

$array1 = array("

color

" => "

red", 2, 4

);$array2 = array("

a", "

b", "

color

" => "

green

", "

shape

" => "

trapezoid

", 4

);$result =array_merge($array1, $array2);

//元素4被覆蓋

var_dump($result);

輸出

array(7)

count — 計算陣列中的單元數目,或物件中的屬性個數

count( mixed$array_or_countable[, int$mode= count_normal ] ) : int

<?php 

$a[0] = 1

;$a[

1] = 3

;$a[

2] = 5

;var_dump(count($a));

$b[0] = 7

;$b[

5] = 9

;$b[

10] = 11

;var_dump(count($b));

//有個例外:如果 array_or_countable 是 null 則結果是 0。

var_dump(count(null

));var_dump(count(

false

));?>

輸出

int(3) int(3) int(0) int(1)

is_array — 檢測變數是否是陣列

is_array( mixed$var) : bool

如果var是 array,則返回true,否則返回false

substr — 返回字串的子串

substr( string$string, int$start[, int$length] ) : string

返回字串stringstartlength引數指定的子字串。

<?php 

echo substr(

'abcdef

', 1).'

'; //

bcdef

echo substr('

abcdef

', 1, 3).'

'; //

bcdecho substr('

abcdef

', 0, 4).'

'; //

abcd

echo substr('

abcdef

', 0, 8).'

'; //

abcdef

echo substr('

abcdef

', -1, 1).'

'; //f//

訪問字串中的單個字元

//也可以使用中括號

$string = '

abcdef';

echo $

string[0].'

'; //

aecho $string[3].'

'; //

decho $string[strlen($string)-1].'

'; //

f

輸出

bcdef

bcdabcd

abcdeffa

df

每天10個Linux命令五

1.chomd命令 chomd 777 a.txt 設定a.txt檔案的許可權為可讀可執行 chmod 777 將目錄下所有的檔案的額執行許可權設定為刻度可執行 chmod 666 a.txt 去掉檔案的可執行許可權 chmod 770 a.txt 屬主和屬組有所有許可權 chmod 755 a.t...

夯實基礎之linux 每天五個個命令

命令一 cat 開啟輸出乙個檔案的內容,或者拼接兩個檔案內容並且輸出 n 或 number 由 1 開始對所有輸出的行數編號 b 或 number nonblank 和 n 相似,只不過對於空白行不編號 s 或 squeeze blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行 v 或 ...

JS記憶函式

對於一種純函式 即只要是同一種輸入就能得到唯一乙個相同的結果的函式 我們可以設定記憶函式來節約資源,當輸入的引數不變時,我們就可以採用快取的結果,當輸入引數有所變化時才重新計算。一種記憶函式如下所示 function memorize fn cachedarg arg cachedresult fn...