[php]array_change_key_case 將陣列索引值改成英文大寫或小寫
(PHP 4 >= 4.2.0, PHP 5)
array array_change_key_case ( array $input [, int $case ] )
array_change_key_case() 將 input 數組中的所有鍵名改為全小寫或大寫。改變是根據後一個選項 case 參數來進行的。可以在這裡用兩個常量,CASE_UPPER 和 CASE_LOWER。默認值是 CASE_LOWER。本函數不改變數字索引。
<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>
Array
(
[FIRST] => 1
[SECOND] => 4
)
相同函數(陣列索引值改成英文小寫)
// improving the previous script
function ack_r3(&$array, $case=CASE_LOWER, $flag_rec=false)
{
$array = array_change_key_case($array, $case);
if ( $flag_rec ) {
foreach ($array as $key => $value) {
if ( is_array($value) ) {
ack_r3($array[$key], $case, true);
}
}
}
}
// same of array_change_key_case
$arr = array('ID' => 1, 'NAME'=> 'Luis', 'Contact' => array('PHONE' => '3010-7148', 'E-MAIL' => 'luis@net.com') );
ack_r3($arr, CASE_LOWER,false);
var_dump($arr);
$arr = array('ID' => 1, 'NAME'=> 'Luis', 'Contact' => array('PHONE' => '3010-7148', 'E-MAIL' => 'luis@net.com') );
ack_r3($arr, CASE_LOWER,true);
var_dump($arr);
?>
輸出值
array(3) {
["id"]=>
int(1)
["name"]=>
string(4) "Luis"
["contact"]=>
array(2) {
["PHONE"]=>
string(9) "3010-7148"
["E-MAIL"]=>
string(12) "luis@net.com"
}
}
array(3) {
["id"]=>
int(1)
["name"]=>
string(4) "Luis"
["contact"]=>
array(2) {
["phone"]=>
string(9) "3010-7148"
["e-mail"]=>
string(12) "luis@net.com"
}
}
相同函數(陣列索引值改成英文小寫)
<?php
function arrKey2Lower(&$arrVals) {
foreach( $arrVals as $key => $item ) {
$key2 = strtolower($key);
if ( $key2 != $key) {
unset($arrVals[$key]);
$arrVals[$key2]=$item;
$key=$key2;
}
if ( is_array($item) ) { arrKey2Lower($arrValores[$key]); }
}
}
$arr = array('ID' => 1, 'NAME'=> 'Luis', 'Contact' => array('PHONE' => '3010-7148', 'E-MAIL' => 'luis@net.com') );
arrKey2Lower($arr);
var_dump($arr);
?>
outputs:
array(3) {
["id"]=>
int(1)
["name"]=>
string(4) "Luis"
["contact"]=>
array(2) {
["phone"]=>
string(9) "3010-7148"
["e-mail"]=>
string(12) "luis@net.com"
}
}