Предположим, что у меня есть ассоциативный массив:
$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
массива.
Благодарю.