PHP 第二週函式學習記錄

乄Z發表於2020-06-14

array_pad()

作用

函式將指定數量的帶有指定值的元素插入到陣列中。

用法

array_pad(array, size, value)

測試案例

$a=array("red", "green");
print_r(array_pad($a, 5, "blue"));

結果

Array ( 
    [0] => red
    [1] => green
    [2] => blue 
    [3] => blue 
    [4] => blue 
)

array_pop()

作用

函式刪除陣列中的最後一個元素。

用法

array_pop(array)

測試案例

$a=array("red", "green", "blue");
array_pop($a);
print_r($a);

結果

Array ( 
    [0] => red
    [1] => green 
)

array_product()

作用

數計算並返回陣列的乘積。

用法

array_product(array)

測試案例

$a=array(5, 5, 2, 10);
echo(array_product($a));

結果

500

array_push()

作用

向陣列尾部插入一個或多個元素

用法

array_push(array, value1, value2...)

測試案例

$a=array("a"=>"red", "b"=>"green");
array_push($a, "blue", "yellow");
print_r($a);

結果

Array ( 
    [a] => red
    [b] => green
    [0] => blue 
    [1] => yellow 
)

array_rand()

作用

函式返回陣列中的一個隨機鍵名,或者如果指定函式返回鍵名不只一個,則返回一個包含隨機鍵名的陣列

用法

array_rand(array, number)

測試案例

$a=array("a"=>"red", "b"=>"green", "c"=>"blue", "d"=>"yellow");
print_r(array_rand($a, 2));

結果

Array ( 
    [0] => a
    [1] => b
)

array_reduce()

作用

函式傳送陣列中的值到使用者自定義函式,並返回一個字串

用法

array_reduce(array, myfunction, initial)

initial  可選。規定傳送到函式處理的第一個值。

測試案例

function myfunction($v1,$v2)
{
    echo 'v1:';
    print_r($v1);
    echo "<br>";
    echo 'v2:';
    print_r($v2);
    echo "<br>";
    return $v1 . "-" . $v2;

}
$a=array('a'=>"Dog",'b'=>"Cat",'c'=>"Horse", 'a');
print_r(array_reduce($a,"myfunction"));
echo "<br>";
echo "------------------------------------";
echo "<br>";
print_r(array_reduce($a,"myfunction", 5));

結果

v1:
v2:Dog
v1:-Dog
v2:Cat
v1:-Dog-Cat
v2:Horse
v1:-Dog-Cat-Horse
v2:a
-Dog-Cat-Horse-a
------------------------------------
v1:5
v2:Dog
v1:5-Dog
v2:Cat
v1:5-Dog-Cat
v2:Horse
v1:5-Dog-Cat-Horse
v2:a
5-Dog-Cat-Horse-a

array_replace()

作用

使用後面陣列的值替換第一個陣列的值

用法

array_replace(array1,array2,array3...)

測試案例

$a1=array("a"=>"red", "green");
$a2=array("a"=>"orange", "b"=>"burgundy");
print_r(array_replace($a1, $a2));

結果

Array ( 
    [a] => orange 
    [0] => green 
    [b] => burgundy 
)

array_replace_recursive()

作用

函式遞迴地使用後面陣列的值替換第一個陣列的值

用法

array_replace_recursive(array1,array2,array3...)

測試案例

$a1=array(
    "a"=>array("red"),
    "b"=>array("green","blue"),
);
$a2=array(
    "a"=>array("yellow"),
    "b"=>array("black")
);

$result=array_replace_recursive($a1,$a2);
print_r($result);

$result=array_replace($a1,$a2);
print_r($result);

結果

Array ( 
    [a] => Array ( 
        [0] => yellow 
    )
    [b] => Array (
        [0] => black 
        [1] => blue 
    ) 
) 
Array (
    [a] => Array (
        [0] => yellow 
    ) 
    [b] => Array ( 
        [0] => black
    ) 
)

array_reverse()

作用

函式返回翻轉順序的陣列。

用法

array_reverse(array,preserve)

測試案例

$a=array("Volvo","XC90",array("BMW","Toyota"));
$reverse=array_reverse($a);
$preserve=array_reverse($a,true);

print_r($a);
print_r($reverse);
print_r($preserve);

結果

Array (
    [0] => Volvo
    [1] => XC90
    [2] => Array ( 
        [0] => BMW 
        [1] => Toyota 
    ) 
) 
Array ( 
    [0] => Array ( 
        [0] => BMW 
        [1] => Toyota
        )
    [1] => XC90
    [2] => Volvo
) 
Array ( 
    [2] => Array ( 
        [0] => BMW
        [1] => Toyota
    ) 
    [1] => XC90 
    [0] => Volvo
)

array_search()

作用

函式在陣列中搜尋某個鍵值,並返回對應的鍵名。

用法

array_search(value,array,strict)

測試案例

$a=array("a"=>"5","b"=>5,"c"=>"5");
echo array_search(5,$a,true);

結果

b

array_shift()

作用

函式用於刪除陣列中的第一個元素,並返回被刪除的元素。

用法

array_shift(array)

測試案例

$a=array(0=>"red",1=>"green",2=>"blue");
echo array_shift($a);
print_r ($a);

結果

red
Array ( [0] => green [1] => blue )

array_slice()

作用

返回陣列中的選定部分

用法

array_slice(array,start,length,preserve)

preserve  函式是保留鍵名還是重置鍵名
          true 保留鍵名
          false  重置鍵名

測試案例


$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,1,2,true));

$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,1,2,false));

結果

Array ( [1] => green [2] => blue ) 
Array ( [0] => green [1] => blue )

array_splice()

作用

函式從陣列中移除選定的元素,並用新元素取代它。函式也將返回被移除元素的陣列。

用法

array_splice(array,start,length,array)
註釋:不保留替代陣列中的鍵名。

測試案例

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"purple","b"=>"orange");
print_r(array_splice($a1,0,2,$a2));
print_r($a1);

結果

Array ( [a] => red [b] => green ) 
Array ( 
    [0] => purple 
    [1] => orange 
    [c] => blue
    [d] => yellow 
)

array_sum()

作用

函式返回陣列中所有值的和。

用法

array_sum(array)

測試案例

$a=array("a"=>52.2,"b"=>13.7,"c"=>0.9);
echo array_sum($a);

結果

66.8

array_udiff()

作用

函式用於比較兩個(或更多個)陣列的鍵值 ,並返回差集

用法

array_udiff(array1,array2,array3...,myfunction)

測試案例

function myfunction($a,$b)
{
   if ($a===$b)
   {
       return 0;
   }
   return ($a>$b)?1:-1;
}

$a1=array("a"=>"red","b"=>"green","c"=>"blue","yellow");
$a2=array("A"=>"red","b"=>"GREEN","yellow","black");
$a3=array("a"=>"green","b"=>"red","yellow","black");

$result=array_udiff($a1,$a2,$a3,"myfunction");
print_r($result);

結果

Array ( [c] => blue )

array_udiff_assoc()

作用

函式用於比較兩個(或更多個)陣列的鍵名和鍵值,並返回差集。

用法

array_udiff_assoc(array1,array2,array3...,myfunction)

測試案例

function myfunction($a,$b)
{
    if ($a===$b)
    {
       return 0;
    }
    return ($a>$b)?1:-1;
}

$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"blue","c"=>"green");

$result=array_udiff_assoc($a1,$a2,"myfunction");
print_r($result);

結果

Array ( [b] => green [c] => blue )

array_udiff_uassoc()

作用

函式用於比較兩個(或更多個)陣列的鍵名和鍵值,並返回差集。

用法

array_udiff_uassoc(array1,array2,array3...,myfunction_key,myfunction_value)

測試案例

function myfunction_key($a,$b)
{
    if ($a===$b)
    {
        return 0;
    }
    return ($a>$b)?1:-1;
}

function myfunction_value($a,$b)
{
    if ($a===$b)
    {
        return 0;
    }
    return ($a>$b)?1:-1;
}

$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"green","c"=>"green");

$result=array_udiff_uassoc($a1,$a2,"myfunction_key","myfunction_value");
print_r($result);

結果

Array ( [c] => blue )

array_uintersect()

作用

用於比較兩個(或更多個)陣列的鍵值 ,並返回交集。

用法

array_uintersect(array1,array2,array3...,myfunction)

測試案例

function myfunction($a,$b)
{
        if ($a===$b)
        {
                return 0;
        }
        return ($a>$b)?1:-1;
}

$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"blue","b"=>"black","e"=>"blue");

$result=array_uintersect($a1,$a2,"myfunction");
print_r($result);

結果

Array ( [c] => blue )

array_uintersect_assoc()

作用

函式用於比較兩個(或更多個)陣列的鍵名和鍵值 ,並返回交集
註釋:該函式使用內建函式比較鍵名,使用使用者自定義函式比較鍵值!

用法

array_uintersect_assoc(array1,array2,array3...,myfunction)

測試案例

function myfunction($a,$b)
{
if ($a===$b)
   {
   return 0;
   }
   return ($a>$b)?1:-1;
}

$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"blue","c"=>"green");

$result=array_uintersect_assoc($a1,$a2,"myfunction");
print_r($result);

結果

Array ( [a] => red )

array_uintersect_uassoc()

作用

函式用於比較兩個(或更多個)陣列的鍵名和鍵值,並返回交集。
註釋:該函式使用兩個使用者自定義函式進行比較;第一個函式比較鍵名,第二個函式比較鍵值!

用法

array_uintersect_uassoc(array1,array2,array3...,myfunction_key,myfunction_value)

測試案例

function myfunction_key($a,$b)
{
    if ($a===$b)
    {
        return 0;
    }
    return ($a>$b)?1:-1;
}

function myfunction_value($a,$b)
{
    if ($a===$b)
    {
       return 0;
    }
    return ($a>$b)?1:-1;
}

$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"green","c"=>"green");

$result=array_uintersect_uassoc($a1,$a2,"myfunction_key","myfunction_value");
print_r($result);

結果

Array ( [a] => red [b] => green )

array_unique()

作用

函式用於移除陣列中重複的值。如果兩個或更多個陣列值相同,只保留第一個值,其他的值被移除。
註釋:被保留的陣列將保持第一個陣列項的鍵名型別。

用法

array_unique(array)

測試案例

$a=array("a"=>"red","b"=>"green","c"=>"red");
print_r(array_unique($a));

結果

Array ( [a] => red [b] => green )

array_unshift()

作用

函式用於向陣列插入新元素。新陣列的值將被插入到陣列的開頭。返回元素的個數
註釋:數值鍵名將從 0 開始,以 1 遞增。字串鍵名將保持不變。

用法

array_unshift(array,value1,value2,value3...)

測試案例

$a=array("a"=>"red","b"=>"green");
print_r(array_unshift($a,"blue"));
print_r($a);

結果

3
Array ( 
    [0] => blue 
    [a] => red 
    [b] => green 
)

array_values()

作用

函式返回包含陣列中所有的值的陣列。

用法

array_values(array)

測試案例

$a=array("Name"=>"Peter","Age"=>"41","Country"=>"USA");
print_r(array_values($a));

結果

Array ( 
    [0] => Peter
    [1] => 41 
    [2] => USA 
)

array_walk()

作用

函式對陣列中的每個元素應用使用者自定義函式。在函式中,陣列的鍵名和鍵值是引數。
註釋:您可以通過把使用者自定義函式中的第一個引數指定為引用:&$value,來改變陣列元素的值

用法

array_walk(array,myfunction,parameter...)

測試案例

function myfunction(&$value,$key)
{
$value="yellow";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction");
print_r($a);

結果

Array ( 
    [a] => yellow
    [b] => yellow 
    [c] => yellow 
)

array_walk_recursive()

作用

函式對陣列中的每個元素應用使用者自定義函式。在函式中,陣列的鍵名和鍵值是引數。該函式與 array_walk() 函式的不同在於可以操作更深的陣列(一個陣列中包含另一個陣列)。

用法

array_walk_recursive(array,myfunction,parameter...)

測試案例

function myfunction($value,$key)
{
    echo "The key $key has the value $value<br>";
}
$a1=array("a"=>"red","b"=>"green");
$a2=array($a1,"1"=>"blue","2"=>"yellow");
array_walk_recursive($a2,"myfunction");

結果

The key a has the value red
The key b has the value green
The key 1 has the value blue
The key 2 has the value yellow

arsort()

作用

函式對關聯陣列按照鍵值進行降序排序

用法

arsort(array,sortingtype);

測試案例

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
arsort($age);
print_r($age);

結果

Array ( 
    [Joe] => 43
    [Ben] => 37 
    [Peter] => 35 
)

asort()

作用

函式對關聯陣列按照鍵值進升序排序。

用法

asort(array,sortingtype);

測試案例

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age);
print_r($age);

結果

Array ( 
    [Peter] => 35
    [Ben] => 37 
    [Joe] => 43 
)

compact()

作用

函式建立一個包含變數名和它們的值的陣列。
註釋:任何沒有變數名與之對應的字串都被略過。

用法

compact(var1,var2...)

測試案例

$firstname = "Peter";
$lastname = "Griffin";
$age = "41";

$name = array("firstname", "lastname");
$result = compact($name, "location", "age");

print_r($result);

結果

Array ( 
    [firstname] => Peter 
    [lastname] => Griffin 
    [age] => 41 
)

count()

作用

函式返回陣列中元素的數目

用法

count(array,mode)

mode  0 - 預設。不計算多維陣列中的所有元素。
      1 - 遞迴地計算陣列中元素的數目(計算多維陣列中的所有元素)。

測試案例

$cars=array("Volvo","BMW","Toyota");
echo count($cars);

結果

3

current()

作用

函式返回陣列中的當前元素的值

用法

current(array)

測試案例

$people = array("Peter", "Joe", "Glenn", "Cleveland");
echo current($people) . "<br>";

結果

Peter

end()

作用

函式將內部指標指向陣列中的最後一個元素,並輸出

用法

end(array)

測試案例

$people = array("Peter", "Joe", "Glenn", "Cleveland");

echo current($people) . "<br>";
echo end($people);

結果

Peter
Cleveland

extract()

作用

函式從陣列中將變數匯入到當前的符號表

用法

extract(array,extract_rules,prefix)

extract_rules    函式將檢查每個鍵名是否為合法的變數名,同時也檢查和符號表中已存在的變數名是否衝突。對不合法和衝突的鍵名的處理將根據此引數決定

                    EXTR_OVERWRITE - 預設。如果有衝突,則覆蓋已有的變數。
                    EXTR_SKIP - 如果有衝突,不覆蓋已有的變數。
                    EXTR_PREFIX_SAME - 如果有衝突,在變數名前加上字首 prefix。
                    EXTR_PREFIX_ALL - 給所有變數名加上字首 prefix。
                    EXTR_PREFIX_INVALID - 僅在不合法或數字變數名前加上字首 prefix。
                    EXTR_IF_EXISTS - 僅在當前符號表中已有同名變數時,覆蓋它們的值。其它的都不處理。
                    EXTR_PREFIX_IF_EXISTS - 僅在當前符號表中已有同名變數時,建立附加了字首的變數名,其它的都不處理。
                    EXTR_REFS - 將變數作為引用提取。匯入的變數仍然引用了陣列引數的值。

測試案例

$a = "Original";
$my_array = array("a" => "Cat", "b" => "Dog", "c" => "Horse");

extract($my_array, EXTR_PREFIX_SAME, "dup");

echo "\$a = $a; \$b = $b; \$c = $c; \$dup_a = $dup_a";

結果

$a = Original; $b = Dog; $c = Horse; $dup_a = Cat

in_array()

作用

搜尋陣列中是否存在指定的值。

用法

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

測試案例

$people = array("Peter", "Joe", "Glenn", "Cleveland", 23);

if (in_array("23", $people, TRUE))
{
    echo "Match found<br>";
}
else
{
    echo "Match not found<br>";
} 
if (in_array("Glenn",$people, TRUE))
{
    echo "Match found<br>";
}
else
{
    echo "Match not found<br>";
}

if (in_array(23,$people, TRUE))
{
    echo "Match found<br>";
}
else
{
    echo "Match not found<br>";
}

結果

Match not found
Match found
Match found

key()

作用

函式從當前內部指標位置返回元素鍵名。。

用法

key(array)

測試案例

$people=array("Peter","Joe","Glenn","Cleveland");
echo "The key from the current position is: " . key($people);

結果

The key from the current position is: 0

krsort()

作用

函式對關聯陣列按照鍵名進行降序排序。

用法

krsort(array,sortingtype);
sortingtype     0 = SORT_REGULAR - 預設。把每一項按常規順序排列(Standard ASCII,不改變型別)。
                1 = SORT_NUMERIC - 把每一項作為數字來處理。
                2 = SORT_STRING - 把每一項作為字串來處理。
                3 = SORT_LOCALE_STRING - 把每一項作為字串來處理,基於當前區域設定(可通過 setlocale() 進行更改)。
                4 = SORT_NATURAL - 把每一項作為字串來處理,使用類似 natsort() 的自然排序。
                5 = SORT_FLAG_CASE - 可以結合(按位或)SORT_STRINGSORT_NATURAL 對字串進行排序,不區分大小寫。

測試案例

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
krsort($age);

foreach($age as $x=>$x_value)
{
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}

結果

Key=Peter, Value=35
Key=Joe, Value=43
Key=Ben, Value=37

ksort()

作用

函式對關聯陣列按照鍵名進行升序排序

用法

krsort(array,sortingtype);
sortingtype     0 = SORT_REGULAR -預設。把每一項按常規順序排列(Standard ASCII,不改變型別)。
                1 = SORT_NUMERIC - 把每一項作為數字來處理。
                2 = SORT_STRING - 把每一項作為字串來處理。
                3 = SORT_LOCALE_STRING - 把每一項作為字串來處理,基於當前區域設定(可通過 setlocale() 進行更改)。
                4 = SORT_NATURAL - 把每一項作為字串來處理,使用類似 natsort() 的自然排序。
                5 = SORT_FLAG_CASE - 可以結合(按位或)SORT_STRINGSORT_NATURAL 對字串進行排序,不區分大小寫。

測試案例

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);
foreach($age as $x=>$x_value)
{
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}

結果

Key=Ben, Value=37
Key=Joe, Value=43
Key=Peter, Value=35

list()

作用

函式用於在一次操作中給一組變數賦值

用法

list(var1,var2...)

測試案例

$my_array = array("Dog","Cat","Horse");

list($a, , $c) = $my_array;
echo "Here I only use the $a and $c variables.";

結果

Here I only use the Dog and Horse variables.

natcasesort()

作用

"自然排序"演算法對陣列進行排序。鍵值保留它們原始的鍵名

用法

natcasesort(array)

測試案例

$temp_files = array("temp15.txt","Temp10.txt",
"temp1.txt","Temp22.txt","temp2.txt");

natsort($temp_files);
echo "Natural order: ";
print_r($temp_files);
echo "<br />";

natcasesort($temp_files);
echo "Natural order case insensitve: ";
print_r($temp_files);

結果

Natural order:
Array
(
    [0] => Temp10.txt
    [1] => Temp22.txt
    [2] => temp1.txt
    [4] => temp2.txt
    [3] => temp15.txt
)
Natural order case insensitve:
Array
(
    [2] => temp1.txt
    [4] => temp2.txt
    [0] => Temp10.txt
    [3] => temp15.txt
    [1] => Temp22.txt
)
參考

《PHP 5 Array 函式 | 菜鳥教程》

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章