Como posso converter todos os valores em uma matriz para minúsculas no PHP?
Algo como array_change_key_case
?
use array_map()
:
$yourArray = array_map('strtolower', $yourArray);
Caso você precise minúscula matriz aninhada (por Yahya Uddin ):
$yourArray = array_map('nestedLowercase', $yourArray);
function nestedLowercase($value) {
if (is_array($value)) {
return array_map('nestedLowercase', $value);
}
return strtolower($value);
}
mb_strtolower
$yourArray = array_map('mb_strtolower', $yourArray);
Acabei de verificar e funcionou para cirílicoApenas para completar: você também pode usar
array_walk
:Dos documentos PHP:
Ou diretamente via
foreach
loop usando referências :Observe que esses dois métodos alteram a matriz "no local", enquanto
array_map
cria e retorna uma cópia da matriz, o que pode não ser desejável no caso de matrizes muito grandes.fonte
array_walk_recursive()
. Tambémmb_strtolower()
porque o mundo é multilíngue.Você pode usar array_map (), definir o primeiro parâmetro como 'strtolower' (incluindo as aspas) e o segundo parâmetro como $ lower_case_array.
fonte
Se você deseja minúsculos todos os valores em uma matriz aninhada , use o seguinte código:
Assim:
retornaria:
fonte
array_change_value_case
por continuar
fonte
array_map()
é o método correto. Mas, se você deseja converter valores de matriz específicos ou todos os valores de matriz em minúsculas, um por um, é possível usarstrtolower()
.fonte
Solução AIO / Recursiva / Unicode | UTF-8 | Multibyte suportado!
Exemplo:
Resultado
fonte
Você não diz se sua matriz é multidimensional. Se for, o array_map não funcionará sozinho. Você precisa de um método de retorno de chamada. Para matrizes multidimensionais, tente array_change_key_case .
fonte
`$ Color = array ('A' => 'Azul', 'B' => 'Verde', 'c' => 'Vermelho');
$ strtolower = array_map ('strtolower', $ Cor);
$ strtoupper = array_map ('strtoupper', $ Cor);
print_r ($ strtolower); print_r ($ strtoupper); `
fonte
Você também pode usar uma combinação de
array_flip()
earray_change_key_case()
. Veja este postfonte
array_flip()
se a matriz contiver valores duplicados.