Ищете эквивалент array_map для работы с ключами в ассоциативных массивах

Предположим, что у меня есть ассоциативный массив:

$array = array( "key1" => "value", "key2" => "value2"); 

И я хотел сделать ключи заглавными. Как я буду делать, чем в обобщенном виде (что означает, что я могу применить определенную пользователем функцию для применения к именам ключей)?

Вы можете использовать функцию array_change_key_case php

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

Удивительно, есть функция array_change_key_case .

Вы можете использовать цикл foreach:

 $newArray = array(); foreach ($array as $k => $v) { $newArray[strtoupper($k)] = $v; } 

Помимо приведенных выше ответов, следующий код также делает трюк. Преимущество заключается в том, что вы можете использовать это для любой операции над keys не только для ввода uppercase .

 <?php $arr = array( "key1" => "value", "key2" => "value2" ); echo "<pre>";print_r($arr);echo "</pre>"; $arra = array_combine( array_map(function($k){ return strtoupper($k); }, array_keys($arr) ), $arr); echo "<pre>";print_r($arra);echo "</pre>"; 

Этот код выводится как:

 Array ( [key1] => value [key2] => value2 ) Array ( [KEY1] => value [KEY2] => value2 ) 

Таким образом, это просто альтернативное и более общее решение для изменения keys массива.

Благодарю.