PHP 第一週函式學習記錄

乄Z發表於2020-06-07

array_change_key_case()

作用

函式將陣列的所有的鍵都轉換為大寫字母或小寫字母

用法

array_change_key_case(array,case)

測試案例

$testArr = array('a'=>1, 'B'=>2);
// CASE_UPPER 鍵轉大寫
print_r(array_change_key_case($testArr,CASE_UPPER));
// CASE_LOWER 鍵轉小寫 預設值
print_r(array_change_key_case($testArr,CASE_LOWER));

結果

Array
(
    [A] => 1
    [B] => 2
)
Array
(
    [a] => 1
    [b] => 2
)

array_chunk()

作用

函式把一個陣列分割為新的陣列塊。

用法

array_chunk(array,size,preserve_keys)

size 規定每個新陣列塊包含多少個元素。
preserve_keys  true - 保留原始陣列中的鍵名。
               false - 預設。每個新陣列塊使用從零開始的索引。

測試案例

$testArr = array('a'=>'hhhh', 'B'=>'yyyyy');
// 按每塊1個元素分塊 保留鍵
print_r(array_chunk($testArr,1, true));
// 按每塊1個元素分塊 不保留鍵
print_r(array_chunk($testArr,1, false));

結果

Array
(
    [0] => Array
        (
            [a] => hhhh
        )

    [1] => Array
        (
            [B] => yyyyy
        )

)
Array
(
    [0] => Array
        (
            [0] => hhhh
        )

    [1] => Array
        (
            [0] => yyyyy
        )

)

array_column()

作用

返回輸入陣列中某個單一列的值

用法

array_column(array, column_key, index_key);
column_key 需要返回值的列
index_key 返回陣列的索引/鍵的列

測試案例

$a = array(
  array(
    'id' => 5698,
    'first_name' => 'Peter',
    'last_name' => 'Griffin',
  ),
  array(
    'id' => 4767,
    'first_name' => 'Ben',
    'last_name' => 'Smith',
  ),
  array(
    'id' => 3809,
    'first_name' => 'Joe',
    'last_name' => 'Doe',
  )
);
$last_names = array_column($a, 'last_name', 'id');
print_r($last_names);

結果

Array
(
  [5698] => Griffin
  [4767] => Smith
  [3809] => Doe
)

array_combine()

作用

函式通過合併兩個陣列來建立一個新陣列,其中的一個陣列元素為鍵名,另一個陣列的元素為鍵值

用法

array_combine(keys,values);

測試案例

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

$c = array_combine($fname, $age);
print_r($c);

結果

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

array_count_values()

作用

函式用於統計陣列中所有值出現的次數。

用法

array_count_values(array)

測試案例

$a = array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));

結果

Array (
    [A] => 2 
    [Cat] => 1 
    [Dog] => 2 
)

array_diff()

作用

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

用法

array_diff(array1,array2,array3...);

測試案例

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"black","g"=>"purple");
$a3=array("a"=>"red","b"=>"black","h"=>"yellow");

$result=array_diff($a1,$a2,$a3);
print_r($result);

結果

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

array_diff_assoc()

作用

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

用法

array_diff_assoc(array1,array2,array3...);

測試案例

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","f"=>"green","g"=>"blue");
$a3=array("h"=>"red","b"=>"green","g"=>"blue");

$result=array_diff_assoc($a1,$a2,$a3);
print_r($result);

結果

Array ( 
    [c] => blue 
    [d] => yellow 
)

array_diff_key()

作用

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

用法

array_diff_key(array1,array2,array3...);

測試案例

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

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

結果

Array ( [b] => green )

array_diff_uassoc()

作用

比較兩個陣列的鍵名和鍵值(使用使用者自定義函式比較鍵名),並返回差集

用法

array_diff_uassoc(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("d"=>"red","b"=>"green","e"=>"blue");

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

結果

Array ( [a] => red [c] => blue )

array_diff_ukey()

作用

比較兩個陣列的鍵名(使用使用者自定義函式比較鍵名),並返回差集

用法

array_diff_ukey(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_diff_ukey($a1,$a2,"myfunction");
print_r($result);

結果

Array ( [c] => blue )

array_fill()

作用

用給定的鍵值填充陣列

用法

array_fill(index,number,value);
index  陣列的起始索引
number 規定填充的元素的數量,其值必須大於 0
value  規定用於填充陣列的鍵值

測試案例

$a1=array_fill(3,4,"blue");
$b1=array_fill(0,1,"red");
print_r($a1);
echo "<br>";
print_r($b1);

結果

Array ( 
    [3] => blue
    [4] => blue 
    [5] => blue
    [6] => blue 
)
Array ( 
    [0] => red 
)

array_fill_keys()

作用

給定的指定鍵名的鍵值填充陣列

用法

array_fill_keys(keys,value);

測試案例

$keys=array("a","b","c","d");
$a1=array_fill_keys($keys,"blue");
print_r($a1);

結果

Array ( 
    [a] => blue 
    [b] => blue 
    [c] => blue
    [d] => blue
)

array_filter()

作用

用回撥函式過濾陣列中的元素

用法

array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )

測試案例

function test_odd($var)
{
    return($var & 1);
}

$a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));

結果

Array ( 
    [3] => 3 
)

array_flip()

作用

用於反轉/交換陣列中的鍵名和對應關聯的鍵值

用法

array_flip(array);

測試案例

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$result=array_flip($a1);
print_r($result);

結果

Array ( 
    [red] => a 
    [green] => b 
    [blue] => c
    [yellow] => d
)

array_intersect()

作用

取陣列中所有值的交集

用法

array_intersect(array1,array2,array3...);

測試案例

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");

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

結果

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

array_intersect_assoc()

作用

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

用法

array_intersect_assoc(array1,array2,array3...)

測試案例

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

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

結果

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

array_intersect_key()

作用

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

用法

array_intersect_key(array1,array2,array3...)

測試案例

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

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

結果

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

array_intersect_uassoc()

作用

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

用法

array_intersect_uassoc(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("d"=>"red","b"=>"green","e"=>"blue");

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

結果

Array ( [b] => green )

array_intersect_ukey()

作用

用於比較兩個(或更多個)陣列的鍵名 ,並返回交集。 使用使用者自定義函式比較鍵名

用法

array_intersect_ukey(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"=>"black","b"=>"yellow","d"=>"brown");
$a3=array("e"=>"purple","f"=>"white","a"=>"gold");

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

結果

Array ( [a] => red )

array_key_exists()

作用

函式檢查某個陣列中是否存在指定的鍵名,如果鍵名存在則返回 true,如果鍵名不存在則返回 false

用法

array_key_exists(key,array)

測試案例

$a=array("Volvo"=>"XC90","BMW"=>"X5");
if (array_key_exists("Toyota",$a))
{
    echo "Key exists!";
}
else
{
    echo "Key does not exist!";
}

結果

Key does not exist!

array_keys()

作用

函式返回包含陣列中所有鍵名的一個新陣列。

用法

array_keys(array,value,strict)

測試案例

$a=array(10,20,30,"10");
print_r(array_keys($a,"10",true));

結果

Array ( [0] => 3 )

array_map()

作用

函式將使用者自定義函式作用到陣列中的每個值上,並返回使用者自定義函式作用後的帶有新的值的陣列

用法

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

測試案例

function myfunction($v)
{
return($v*$v);
}

$a=array(1,2,3,4,5);
print_r(array_map("myfunction",$a));

結果

Array ( 
    [0] => 1
    [1] => 4
    [2] => 9 
    [3] => 16
    [4] => 25 
)

array_merge()

作用

用於把一個或多個陣列合併為一個陣列

用法

array_merge(array1,array2,array3...)

測試案例

$a=array(3=>"red",4=>"green");
print_r(array_merge($a));

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

結果

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

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

array_merge_recursive()

作用

把一個或多個陣列合併為一個陣列。多個相同鍵名的值遞迴組成一個陣列

用法

array_merge_recursive(array1,array2,array3...)

測試案例

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

結果

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

array_multisort()

作用

返回一個排序陣列。您可以輸入一個或多個陣列。函式先對第一個陣列進行排序,接著是其他陣列,如果兩個或多個值相同,它將對下一個陣列進行排序。

用法

array_multisort(array1,sorting order,sorting type,array2,array3...)

sorting order   SORT_ASC - 預設。按升序排列 (A-Z)
                SORT_DESC - 按降序排列 (Z-A)。

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

測試案例

$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2,SORT_ASC,SORT_NATURAL);
print_r($a1);
print_r($a2);

結果

Array
(
    [0] => Dog
    [1] => Cat
)
Array
(
    [0] => Fido
    [1] => Missy
)
參考

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

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

相關文章