Web студия "GrandView"
  Главная   Написать Контакты
   
   
О проекте
Руководство php
 

array_change_key_case

(PHP 4 >= 4.2.0, PHP 5)

array_change_key_case -- Возвращает массив, символьные ключи которого преобразованы в верхний или нижний регистр символов

Описание

array array_change_key_case ( array input [, integer case] )

Функция array_change_key_case() преобразует ключи массива input в верхний или нижний регистр символов. Тип преобразования зависит от последнего опционального параметра case. В качестве этого параметра вы можете передать одну из двух констант: CASE_UPPER и CASE_LOWER. По умолчанию используется CASE_LOWER. Эта функция не изменяет ключи, состоящие из чисел.

Пример 1. Пример использования array_change_key_case()

$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));

Результатом выполнения вышеприведенной программы будет:
Array
(
    [FIRST] => 1
    [SECOND] => 2
)



array_chunk> <Массивы
Last updated: Sat, 27 Jan 2007
 
add a note add a note User Contributed Notes
array_change_key_case
felix dot gilcher at exozet dot com
31-Oct-2007 03:54
Please, someone remove the note below by anonymous. Using

array_flip($array);
array_change_key_case($array);
array_flip($array);

to uppercase/lowercase all values is not only inefficient as hell, but also produces wrong results - it will remove all duplicate values. The proper way to do this is using

array_map() and strtoupper()/strtolower()

thanks
Anonymous
22-Oct-2007 10:28
To change all values case simply make use of array_flip.

      $array = array_flip($array);
      $array = array_change_key_case($array , CASE_LOWER);
      $array = array_flip($array);
john at doe dot com
26-Sep-2007 12:04
<?php
function array_change_value_case($input, $case = CASE_LOWER)
{
   
$aRet = array();
   
    if (!
is_array($input))
    {
        return
$aRet;
    }
   
    foreach (
$input as $key => $value)
    {
        if (
is_array($value))
        {
           
$aRet[$key] = array_change_value_case($value, $case);
            continue;
        }
       
       
$aRet[$key] = ($case == CASE_UPPER ? strtoupper($value) : strtolower($value));
    }
   
    return
$aRet;
}
?>
cm at gameswelt dot de
10-Aug-2007 04:11
I just changed the code a little bit so you havent got a code that repeats itself.

<?php

function array_change_key_case_secure($array = array(), $case = CASE_UPPER){
   
$secure = array();
   
$functionWrap = array(CASE_UPPER => 'strtoupper',
                           
CASE_LOWER => 'strtolower');
                           
    foreach(
$array as $key => $val){
        if(isset(
$functionWrap[$key])){
           
$key = $functionWrap[$case]($key);
           
$secure[$key][] = $val;
        } else {
            die(
'Not a known Type');
        }
    }
   
    foreach(
$secure as $key => $val){
        if(
count($secure[$key]) == 1){
           
$secure[$key] = $val[0];
        }
    }
   
    return
$secure;
}

$myArray = array('A' => 'Hello',
                   
'B' => 'World',
                   
'a' => 'how are you?');

print_r($myArray);
$myArray = array_change_key_case_secure($myArray);
print_r($myArray);

/*
Array
(
    [A] => Hello
    [B] => World
    [a] => how are you?
)
Array
(
    [A] => Array
        (
            [0] => Hello
            [1] => how are you?
        )

    [B] => World
)
*/
cdblog at gmail dot com
20-May-2005 01:55
<?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
)
aidan at php dot net
01-Jun-2004 08: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

array_chunk> <Массивы
Last updated: Sat, 27 Jan 2007
 
 
Новости
11 июля 2007
Сайт запущен
© 2007 info@grandviewstudio.com

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/sites/grandviewstudiocom/www/65f67d67a94ad980786580ae69e11c07/sape.php on line 324

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/sites/grandviewstudiocom/www/65f67d67a94ad980786580ae69e11c07/sape.php on line 330
Z058440144362 Z348613067571