2010-12-15 6 views
19

przy użyciu strtolower() na tablicy istnieje sposób, aby wynik poniżej małe litery?strtolower() na tablicy

<?=$rdata['batch_id']?> 
strtolower($rdata['batch_id']) 
+6

Pytanie nie jest jasne. – zerkms

+0

@zerkms: Myślę, że pytanie brzmi, czy kod zmieniłby wartość '$ rdata ['batch_id'], to się zmieni i odpowiedź brzmi: – RageZ

+0

@RageZ: Też tak pomyślałem, ale to jest tak oczywiste, że wolę pomyśleć, że właśnie źle zrozumiałem jego oczekiwania ;-) – zerkms

Odpowiedz

82

Poprawna nazwa funkcji jest strtolower(). Jeśli chcesz zastosować ten na każdym elemencie tablicy, można użyć array_map():

$array = array('ONE', 'TWO'); 
$array = array_map('strtolower', $array); 

Teraz twoja tablica będzie zawierać „jeden” i „dwa”.

+1

Za dobre wyłączenie bez edytowania zawartości mojej tablicy: if (! in_array (strtolower ($ filename [0]), array_map ('strtolower', $ filesArray))) { – ImaginedDesign

4

Jeśli przyjrzeć podpisu strtolower nie wspominając wszelkie odniesienia

string strtolower (string $str) 

więc kod nie będzie zmodyfikować wartość $ rdata [ ''] batch_id

<?=$rdata['batch_id']?> 
strtolower($rdata['batch_id']); 

korzystne byłoby kod

$rdata['batch_id'] = strtolower($rdata['batch_id']); 
6

array_map jest, ale innego rozwiązania jest:

foreach($array as &$v) { 
    $v = strtolower($v); 
} 

Zauważ, że ampersand & czyni $v modyfikowalny.

+1

Upewnij się, że zawsze robisz " unset ($ v); " po pętli foreach z "&" w niej. Lub nie używaj już "$ v" w tym samym zakresie. W przeciwnym razie cokolwiek nowego przypisanego do $ v zostanie umieszczone w oryginalnej tablicy. Przykład, gdzie coś pójdzie nie tak: http://sandbox.onlinephpfunctions.com/code/6b6c3a779d5c43cebee4020786f6090632f33822 – DraughtGlobe