首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 陣列操作:鍵名比較、差集、交集與翻轉實用技巧

     編輯:PHP 相關知識

PHP 陣列操作:鍵名比較、差集、交集與翻轉實用技巧

自訂鍵名比較函式

function key_compare_func($key1, $key2) {
    if ($key1 == $key2) return 0;
    return ($key1 > $key2) ? 1 : -1;
}

鍵名差集 array_diff_ukey()

$array1 = array('blue'=>1, 'red'=>2, 'green'=>3, 'purple'=>4);
$array2 = array('green'=>5, 'blue'=>6, 'yellow'=>7, 'cyan'=>8);
$result = array_diff_ukey($array1, $array2, 'key_compare_func');
/* 結果:red, purple(僅存在於 array1 的鍵) */

值差集 array_diff()

$array1 = array("a"=>"green", "red", "blue", "red");
$array2 = array("b"=>"green", "yellow", "red");
$result = array_diff($array1, $array2);
/* 結果:blue(值不在 array2 中) */

填充陣列 array_fill()

$result = array_fill(5, 6, 'banana');
/* 索引 5 開始填入 6 個 banana
Array([5] => banana, [6] => banana, ..., [10] => banana) */

過濾陣列 array_filter()

function odd($var) { return $var % 2 == 1; }
function even($var) { return $var % 2 == 0; }

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

print_r(array_filter($array1, "odd"));  // 保留奇數鍵值
print_r(array_filter($array2, "even")); // 保留偶數鍵值

翻轉陣列 array_flip()

$trans = array("a"=>1, "b"=>2, "c"=>3);
$result = array_flip($trans);
/* Array([1] => a, [2] => b, [3] => c) */

關聯交集 array_intersect_assoc()

$array1 = array("a"=>"green", "b"=>"brown", "c"=>"blue", "red");
$array2 = array("a"=>"green", "yellow", "red");
$result = array_intersect_assoc($array1, $array2);
/* Array([a] => green) 鍵值皆相同 */

函式對照表

函式用途比較依據
array_diff_ukey鍵名差集自訂回呼比較鍵名
array_diff值差集比較值
array_intersect_assoc關聯交集鍵名與值皆相同
array_flip鍵值互換值必須為有效鍵(字串/整數)
array_filter回呼過濾回呼回傳 true 保留
array_fill建立填充陣列指定起始索引、數量、值
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved