Wie kann ich alle Werte in einem Array in PHP in Kleinbuchstaben konvertieren?
So etwas wie array_change_key_case
?
benutze array_map()
:
$yourArray = array_map('strtolower', $yourArray);
Nur zur Vollständigkeit: Sie können auch array_walk
verwenden:
array_walk($yourArray, function(&$value)
{
$value = strtolower($value);
});
Aus PHP -Dokumenten:
Wenn Callback mit den tatsächlichen Werten des Arrays arbeiten muss, geben Sie den ersten Parameter des Callbacks als Referenz an. Alle an diesen Elementen vorgenommenen Änderungen werden dann im ursprünglichen Array selbst vorgenommen.
Oder direkt über foreach
loop mit Referenzen :
foreach($yourArray as &$value)
$value = strtolower($value);
Beachten Sie, dass diese beiden Methoden das Array "in place" ändern, wohingegen array_map
eine Kopie des Arrays erstellt und zurückgibt, was bei sehr großen Arrays möglicherweise nicht erwünscht ist.
Sie können array_map () verwenden, den ersten Parameter auf 'strtolower' (einschließlich der Anführungszeichen) und den zweiten Parameter auf $ lower_case_array setzen.
Wenn Sie alle Werte in einem verschachtelten - Array in Kleinbuchstaben schreiben möchten, verwenden Sie den folgenden Code:
function nestedLowercase($value) {
if (is_array($value)) {
return array_map('nestedLowercase', $value);
}
return strtolower($value);
}
So:
[ 'A', 'B', ['C-1', 'C-2'], 'D']
würden zurückkehren:
[ 'a', 'b', ['c-1', 'c-2'], 'd']
array_change_value_case
weiter
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()
ist die richtige Methode. Wenn Sie jedoch bestimmte Array-Werte oder alle Array-Werte einzeln in Kleinbuchstaben konvertieren möchten, können Siestrtolower()
verwenden.
for($i=0; $i < count($array1); $i++) {
$array1[$i] = strtolower($array1[$i]);
}
Sie sagen nicht, ob Ihr Array mehrdimensional ist. Wenn dies der Fall ist, funktioniert array_map nicht alleine. Sie benötigen eine Rückrufmethode. Versuchen Sie für mehrdimensionale Arrays array_change_key_case .
// You can pass array_change_key_case a multi-dimensional array,
// or call a method that returns one
$my_array = array_change_key_case(aMethodThatReturnsMultiDimArray(), CASE_UPPER);
AIO-Lösung/Rekursiv/Unicode | UTF-8 | Multibyte wird unterstützt!
/**
* 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;
}
Beispiel:
$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);
Ausgabe
[
'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'
]
]