Как преобразовать все значения в массив в нижний регистр в PHP?
Что-то вроде array_change_key_case
?
use array_map()
:
$yourArray = array_map('strtolower', $yourArray);
Просто для полноты: вы также можете использовать array_walk
:
array_walk($yourArray, function(&$value) { $value = strtolower($value); });
Из документов PHP:
Если обратный вызов должен работать с фактическими значениями массива, укажите первый параметр обратного вызова в качестве ссылки. Затем любые изменения, внесенные в эти элементы, будут сделаны в самом исходном массиве.
Или непосредственно через цикл foreach
используя ссылки :
foreach($yourArray as &$value) $value = strtolower($value);
Обратите внимание, что эти два метода изменяют массив «на месте», тогда как array_map
создает и возвращает копию массива, что может быть нежелательно в случае очень больших массивов.
Вы можете использовать array_map (), установить первый параметр в 'strtolower' (включая кавычки), а второй – $ lower_case_array.
array_change_value_case
продолжать
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 ) )
array_map()
– правильный метод. Но если вы хотите преобразовать определенные значения массива или все значения массива в строчные буквы по одному, вы можете использовать strtolower()
.
for($i=0; $i < count($array1); $i++) { $array1[$i] = strtolower($array1[$i]); }
Если вы хотите записать все значения во вложенном массиве, используйте следующий код:
function nestedLowercase($value) { if (is_array($value)) { return array_map('nestedLowercase', $value); } return strtolower($value); }
Так:
[ 'A', 'B', ['C-1', 'C-2'], 'D']
вернется:
[ 'a', 'b', ['c-1', 'c-2'], 'd']
Вы также можете использовать комбинацию array_flip()
и array_change_key_case()
. Посмотреть это сообщение