2012-06-13 69 views

Trả lời

226

sử dụng array_map():

$yourArray = array_map('strtolower', $yourArray); 
+1

yêu em, yêu em, yêu em –

5

Bạn có thể sử dụng array_map(), thiết lập các thông số đầu tiên 'strtolower (bao gồm dấu ngoặc kép) và tham số thứ hai đến $ lower_case_array.

2

array_map() là phương pháp chính xác. Tuy nhiên, nếu bạn muốn chuyển đổi các giá trị mảng cụ thể hoặc tất cả giá trị mảng thành chữ thường, bạn có thể sử dụng strtolower().

for($i=0; $i < count($array1); $i++) { 
    $array1[$i] = strtolower($array1[$i]); 
} 
20

Chỉ cần cho đầy đủ: bạn cũng có thể sử dụng array_walk:

array_walk($yourArray, function(&$value) 
{ 
    $value = strtolower($value); 
}); 

Từ PHP docs:

Nếu gọi lại cần được làm việc với các giá trị thực tế của mảng, chỉ định tham số đầu tiên của gọi lại làm tham chiếu. Sau đó, bất kỳ thay đổi nào được thực hiện cho các yếu tố đó sẽ được thực hiện trong chính mảng gốc.

Hoặc trực tiếp qua foreach loop sử dụng references:

foreach($yourArray as &$value) 
    $value = strtolower($value); 

Lưu ý rằng hai phương pháp này thay đổi mảng "tại chỗ", trong khi array_map tạo và trả về một bản sao của mảng, mà có thể không được mong muốn trong trường hợp các mảng rất lớn.

-2

Bạn cũng có thể sử dụng kết hợp array_flip()array_change_key_case(). Xem this post

+3

mảng dữ liệu bị mất sau khi gọi 'array_flip() 'nếu mảng chứa giá trị trùng lặp. – Pang

3

array_change_value_case

bởi tiếp tục

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 
) 

) 
2

Nếu bạn muốn thành chữ thường tất cả các giá trị trong một lồng nhau mảng , sử dụng đoạn mã sau:

function nestedLowercase($value) { 
    if (is_array($value)) { 
     return array_map('nestedLowercase', $value); 
    } 
    return strtolower($value); 
} 

Vì vậy:

[ 'A', 'B', ['C-1', 'C-2'], 'D'] 

sẽ trở lại:

[ 'a', 'b', ['c-1', 'c-2'], 'd'] 
Các vấn đề liên quan