PHP에서 어레이 값을 소문자로 변환하는 방법
배열의 모든 값을 PHP에서 소문자로 변환하려면 어떻게 해야 합니까?
뭐랄까array_change_key_case
?
사용방법:
$yourArray = array_map('strtolower', $yourArray);
네스트된 어레이에 소문자를 붙여야 하는 경우(Yahya Uddin 작성):
$yourArray = array_map('nestedLowercase', $yourArray);
function nestedLowercase($value) {
if (is_array($value)) {
return array_map('nestedLowercase', $value);
}
return strtolower($value);
}
완전성을 위해 다음을 사용할 수도 있습니다.
array_walk($yourArray, function(&$value)
{
$value = strtolower($value);
});
PHP 문서에서:
콜백이 배열의 실제 값으로 동작해야 하는 경우 참조로 콜백의 첫 번째 파라미터를 지정합니다.그런 다음 이러한 요소에 대한 변경은 원래 배열 자체에서 이루어집니다.
또는 참조를 사용하여 루프를 통해 직접 사용할 수도 있습니다.
foreach($yourArray as &$value)
$value = strtolower($value);
이 두 가지 방법은 어레이를 "in place"로 변경하지만array_map
는 어레이의 복사본을 생성하여 반환합니다.이는 매우 큰 어레이의 경우 바람직하지 않을 수 있습니다.
array_map()을 사용하여 첫 번째 파라미터를 strtolower(따옴표 포함)로 설정하고 두 번째 파라미터를 $lower_case_array로 설정할 수 있습니다.
네스트된 배열의 모든 값을 소문자로 표시하려면 다음 코드를 사용합니다.
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']
$Color = array('A' => 'Blue', 'B' => 'Green', 'c' => 'Red');
$strtolower = array_map('strtolower', $Color);
$strtoupper = array_map('strtoupper', $Color);
print_r($strtolower);
print_r($strtoupper);`
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()
올바른 방법입니다.그러나 특정 배열 값 또는 모든 배열 값을 하나씩 소문자로 변환하려면 를 사용할 수 있습니다.
for($i=0; $i < count($array1); $i++) {
$array1[$i] = strtolower($array1[$i]);
}
AIO 솔루션 / 재귀 / Unicode|UTF-8|멀티바이트 지원!
/**
* Change array values case recursively (supports utf8/multibyte)
* @param array $array The array
* @param int $case Case to transform (\CASE_LOWER | \CASE_UPPER)
* @return array Final array
*/
function changeValuesCase ( array $array, $case = \CASE_LOWER ) : array {
if ( !\is_array ($array) ) {
return [];
}
/** @var integer $theCase */
$theCase = ($case === \CASE_LOWER)
? \MB_CASE_LOWER
: \MB_CASE_UPPER;
foreach ( $array as $key => $value ) {
$array[$key] = \is_array ($value)
? changeValuesCase ($value, $case)
: \mb_convert_case($array[$key], $theCase, 'UTF-8');
}
return $array;
}
예:
$food = [
'meat' => ['chicken', 'fish'],
'vegetables' => [
'leafy' => ['collard greens', 'kale', 'chard', 'spinach', 'lettuce'],
'root' => ['radish', 'turnip', 'potato', 'beet'],
'other' => ['brocolli', 'green beans', 'corn', 'tomatoes'],
],
'grains' => ['wheat', 'rice', 'oats'],
];
$newArray = changeValuesCase ($food, \CASE_UPPER);
산출량
[
'meat' => [
0 => 'CHICKEN'
1 => 'FISH'
]
'vegetables' => [
'leafy' => [
0 => 'COLLARD GREENS'
1 => 'KALE'
2 => 'CHARD'
3 => 'SPINACH'
4 => 'LETTUCE'
]
'root' => [
0 => 'RADISH'
1 => 'TURNIP'
2 => 'POTATO'
3 => 'BEET'
]
'other' => [
0 => 'BROCOLLI'
1 => 'GREEN BEANS'
2 => 'CORN'
3 => 'TOMATOES'
]
]
'grains' => [
0 => 'WHEAT'
1 => 'RICE'
2 => 'OATS'
]
]
안녕하세요, 이 솔루션을 사용해 보세요.간단한 사용 php 어레이 맵
function myfunction($value)
{
return strtolower($value);
}
$new_array = ["Value1","Value2","Value3" ];
print_r(array_map("myfunction",$new_array ));
산출량Array ( [0] => value1 [1] => value2 [2] => value3 )
또, 다음의 조합도 사용할 수 있습니다.array_flip()
그리고.array_change_key_case()
이 투고를 참조해 주세요.
언급URL : https://stackoverflow.com/questions/11008443/how-to-convert-array-values-to-lowercase-in-php
'programing' 카테고리의 다른 글
MySQL이 허용된 제한보다 짧은 쿼리로 max_allowed_packet 위반에 대해 불만을 제기함 (0) | 2022.09.24 |
---|---|
nodejs를 사용하여 Inmariadb를 일괄 삽입하는 방법은 무엇입니까? (0) | 2022.09.24 |
PHP에서 echo 내에 줄 바꿈을 추가하는 방법은 무엇입니까? (0) | 2022.09.24 |
Pattern Syntax Exception:Java에서 regex를 사용할 때 잘못된 반복 (0) | 2022.09.24 |
MySQL에서 IN 절 매개 변수 목록 비우기 (0) | 2022.09.24 |