Я не могу это решить …
Я надеялся, что для этого будет функция PHP по умолчанию, но, похоже, нет. Код, который я нашел в Интернете, кажется, действительно не работает для моей ситуации, так как часто людям нужно только изменять значения массива, а не их ключи.
Мне в основном нужна рекурсивная функция, которая заменяет каждый ключ, который начинается с «_» с тем же ключом без этого символа ….
Кто-нибудь здесь раньше использовал что-то подобное?
Попробуй это:
function replaceKeys(array $input) { $return = array(); foreach ($input as $key => $value) { if (strpos($key, '_') === 0) $key = substr($key, 1); if (is_array($value)) $value = replaceKeys($value); $return[$key] = $value; } return $return; }
Итак, этот код:
$arr = array('_name' => 'John', 'ages' => array( '_first' => 10, 'last' => 15)); print_r(replaceKeys($arr));
Будет производить (как показано на кододелате ):
Array ( [name] => John [ages] => Array ( [first] => 10 [last] => 15 ) )