Mamy tablicę, np.:
$tablica1 = array("a" => "green", "brazowy" => "brown", "c" => "blue", "red");
Chcemy w niej zamienić nazwę klucza "a" na nową "kolor".
function array_rename_key($array, $key, $newkey){ if( !isset($key, $array) || array_key_exists($newkey, $array)) return FALSE; $uid = uniqid(''); //To clearly identify the Element. $preserve_value = $array[$key]; //Keep the Value $array[$key] = $uid; //Overwrite Value with ID $array = array_flip($array); //Flip the Array keys and values $array[$uid] = $newkey; //Set Value of the ID with new Key. $array = array_flip($array); //Everything back in Place. $array[$newkey] = $preserve_value; return $array; }
$c = array_rename_key($tablica1, 'a', 'kolor');
Otrzymamy w rezultacie nową tablicę:
array (4) kolor => "green" (5) brazowy => "brown" (5) c => "blue" (4) 0 => "red" (3)
Inny przykład:
function array_keys_prefix($arr, $pref = "") { $rarr = array(); foreach ($arr as $key => $val) { $rarr[$pref.$key] = $val; } return $rarr; } function array_keys_prefix_multi($arr, $pref = "") { $rarr = array(); foreach ($arr as $key => $val) { $rarr[] = array_keys_prefix($val, $pref); } return $rarr; } $a = array("foo" => "FOO", "bar" => "BAR", "baz" => array(1,2,3)); print_r(array_keys_prefix($a, "id_")); // db fetch... $products = array( array("id" => 1, "name" => "Foo"), array("id" => 2, "name" => "Bar") ); print_r(array_keys_prefix_multi($products, "product_"));
Otrzymamy:
array (3) id_foo => "FOO" (3) id_bar => "BAR" (3) id_baz => array (3) 0 => 1 1 => 2 2 => 3 array (2) 0 => array (2) product_id => 1 product_name => "Foo" (3) 1 => array (2) product_id => 2 product_name => "Bar" (3)