<?php
/**
* @return array
* @author Cocol
* @desc change the key case , if found repeat keys, then convert to array
* for more detail please visit http://php.clickz.cn/array/array_change_key_case.html
*/
function array_change_key_case_secure($array = array(),$case = CASE_UPPER) {
$secure = array();
if ($case == CASE_UPPER) {
foreach ($array as $key=>$val) {
$key = strtoupper($key);
if (!array_key_exists($key,$secure)) {
$secure[$key][] = $val;
} else {
$secure[$key][] = $val;
}
}
} else if ($case == CASE_LOWER) {
foreach ($array as $key=>$val) {
$key = strtolower($key);
if (!array_key_exists($key,$secure)) {
$secure[$key][] = $val;
} else {
$secure[$key][] = $val;
}
}
}
foreach ($secure as $key=>$val) {
if (count($secure[$key]) == 1) {
$secure[$key] = $val[0];
}
}
return $secure;
}
$array = array(
'a' => "john",
'A' => "vary",
'c' => "cocol",
);
print_r($array);
$array = array_change_key_case_secure($array,CASE_UPPER);
print_r($array);
?>
output:
Array
(
[a] => john
[A] => vary
[c] => cocol
)
Array
(
[A] => Array
(
[0] => john
[1] => vary
)
[C] => cocol
)
array_change_key_case
(PHP 4 >= 4.2.0, PHP 5)
array_change_key_case — Ändert alle Schlüssel in einem Array
Beschreibung
Gibt ein Array zurück, in dem alle Schlüssel aus input in Klein- oder Großbuchstaben umgewandelt wurden. Numerische Indizes werden nicht geändert.
Parameter-Liste
- input
-
Das Eingabe-Array
- case
-
Entweder CASE_UPPER oder CASE_LOWER (Standard)
Rückgabewerte
Gibt ein Array zurück, dessen Schlüssel in Klein- oder Großbuchstaben umgewandelt wurden, oder FALSE, wenn input kein Array ist.
Fehler/Exceptions
Wirft E_WARNING, wenn input kein Array ist.
Beispiele
Beispiel #1 array_change_key_case()-Beispiel
<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array
(
[FIRST] => 1
[SECOND] => 4
)
Anmerkungen
Hinweis:
Hat ein Array Indizes, die nach einem Durchlauf durch diese Funktion gleich sind (z.B. "keY" und "kEY"), überschreibt der spätere Wert im Array andere Indizes.
array_change_key_case
20-May-2005 10:55
02-Jun-2004 05:06
This functionality is now implemented in the PEAR package PHP_Compat.
More information about using this function without upgrading your version of PHP can be found on the below link:
http://pear.php.net/package/PHP_Compat