ucfirst - ¿Cómo convertir valores de matriz a minúsculas en PHP?
ucfirst php (7)
Puede usar array_map (), establecer el primer parámetro a ''strtolower'' (incluidas las comillas) y el segundo parámetro a $ lower_case_array.
¿Cómo puedo convertir todos los valores en una matriz a minúsculas en PHP?
Algo así como array_change_key_case
?
Si desea minúsculas de todos los valores en una matriz anidada , use el siguiente código:
function nestedLowercase($value) {
if (is_array($value)) {
return array_map(''nestedLowercase'', $value);
}
return strtolower($value);
}
Asi que:
[ ''A'', ''B'', [''C-1'', ''C-2''], ''D'']
volvería:
[ ''a'', ''b'', [''c-1'', ''c-2''], ''d'']
Solo para completar: también puedes usar array_walk
:
array_walk($yourArray, function(&$value)
{
$value = strtolower($value);
});
De los documentos de PHP:
Si la devolución de llamada debe funcionar con los valores reales de la matriz, especifique el primer parámetro de la devolución de llamada como referencia. Luego, cualquier cambio realizado en esos elementos se realizará en la matriz original.
O directamente a través del ciclo foreach
utilizando references :
foreach($yourArray as &$value)
$value = strtolower($value);
Tenga en cuenta que estos dos métodos cambian la matriz "en su lugar", mientras que array_map
crea y devuelve una copia de la matriz, que puede no ser deseable en el caso de matrices muy grandes.
También puede usar una combinación de array_flip()
y array_change_key_case()
. Ver esta publicación
array_change_value_case
por continuar
function array_change_value_case($array, $case = CASE_LOWER){
if ( ! is_array($array)) return false;
foreach ($array as $key => &$value){
if (is_array($value))
call_user_func_array(__function__, array (&$value, $case ) ) ;
else
$array[$key] = ($case == CASE_UPPER )
? strtoupper($array[$key])
: strtolower($array[$key]);
}
return $array;
}
$arrays = array ( 1 => ''ONE'', 2=> ''TWO'', 3 => ''THREE'',
''FOUR'' => array (''a'' => ''Ahmed'', ''b'' => ''basem'',
''c'' => ''Continue''),
5=> ''FIVE'',
array(''AbCdeF''));
$change_case = array_change_value_case($arrays, CASE_UPPER);
echo "<pre>";
print_r($change_case);
Array ( [1] => one [2] => two [3] => three [FOUR] => Array ( [a] => ahmed [b] => basem [c] => continue ) [5] => five [6] => Array ( [0] => abcdef ) )
use array_map()
:
$yourArray = array_map(''strtolower'', $yourArray);
array_map()
es el método correcto. Pero, si desea convertir valores de matriz específicos o todos los valores de matriz en minúsculas, uno por uno, puede usar strtolower()
.
for($i=0; $i < count($array1); $i++) {
$array1[$i] = strtolower($array1[$i]);
}