note 57123 added to function.array-change-key-case

From: Date: Sat, 24 Sep 2005 15:32:27 +0000
Subject: note 57123 added to function.array-change-key-case
Groups: php.notes 
Request: Send a blank email to php-notes+get-95709@lists.php.net to get a copy of this message
As you know, you can change the key case of an array with array_change_key_case easily, but if you want to invert case or change the key case to capitalize, the default action can't do it. so, you can try this custom function for php array_change_key_case! <?php /** * @source http://www.ipoll.cn/?op=ViewArticle&articleId=364&blogId=1 * @blog http://www.ipoll.cn/ * @author freish chilly * @email ipoller at gmail dot net (change "net" to "com") * @param case: 1->UPPER CASE 2->lower case 3->iNvErT CaSe 4->Capitalize **/ function custom_array_change_key_case( $array = array() , $case = 1 ) { switch ( $case ) { case 1: # UPPER CASE return array_change_key_case( $array , CASE_UPPER ); break; case 2: # LOWER CASE return array_change_key_case( $array, CASE_LOWER ); break; case 3: # INVERT CASE foreach ( $array as $key=>$val ) { $key_converted = ""; $tmp = preg_split("//",$key); @array_shift($tmp); @array_pop($tmp); foreach ($tmp as $letter) { if (preg_match("/[a-z]{1}/",$letter)) { $key_converted .= strtoupper( $letter ); } else if (preg_match("/[A-Z]{1}/",$letter)) { $key_converted .= strtolower( $letter ); } else { $key_converted .= $letter; } } $array_inverted[$key_converted] = $val; } return $array_inverted; break; case 4: # CAPITALIZE foreach ( $array as $key=>$val ) { $array_capitalized[ucfirst(strtolower($key))] = $val; } return $array_capitalized; break; } } $array = array("abc"=>1234,"DeS" => 34234, "fSD" => 3233); print_r(custom_array_change_key_case($array,3)); ?> Content-type: text/html X-Powered-By: PHP/4.3.10 Array ( [ABC] => 1234 [dEs] => 34234 [Fsd] => 3233 ) ---- Manual Page -- http://www.php.net/manual/en/function.array-change-key-case.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+57123 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+57123&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+57123&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+57123&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+57123&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+57123&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+57123&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+57123&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+57123&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#95709) next »