将一个数组(在多个数组内)转换为小写

时间:2015-10-11 15:03:51

标签: php arrays

如何更改数组小写字母。

我试过像---

$data = array_map('strtolower', $data);

它给我一个像---

这样的错误
  

警告:strtolower()要求参数1为字符串,给定数组为

所以我尝试过---

$data = array_change_key_case($data, CASE_UPPER);

但这也将所有字符串都改成小写字母。

我的猜测我在一个数组中有多个数组,这就是为什么这些都不适合我。

$data =
    Array
    (
        [0] => Array
            (
                [name] => Samsung GT-N7100 Galaxy Note II 16GB
            )

        [1] => Array
            (
                [name] => Samsung GT-i9100 Galaxy S II
            )

        [2] => Array
            (
                [name] => Samsung GT-i9300 Galaxy S III 16GB
            )

        [3] => Array
            (
                [name] => Apple iPhone 5 16GB
            )

        [4] => Array
            (
                [name] => Samsung GT-P5110 Galaxy S 4 10.1 16GB
            )

        [5] => Array
            (
                [name] => Samsung UE46ES6715
            )

        [6] => Array
            (
                [name] => Samsung 830 Series MZ-7PC128 128GB
            )

        [7] => Array
            (
                [name] => Samsung GT-N8000 Galaxy Note 10.1 16GB
            )

        [8] => Array
            (
                [name] => Samsung 830 Series MZ-7PC256 256GB
            )

        [9] => Array
            (
                [name] => Samsung UE46ES6715
            )

        [10] => Array
            (
                [name] => Samsung GT-2423 Galaxy Tab 4 10.1 16GB
            )

任何建议如何在PHP中将数组(在多个数组内)转换为小写。

2 个答案:

答案 0 :(得分:4)

使用array_walk_recursive

array_walk_recursive($data, function (&$item) {
    $item = strtolower($item);
});

var_dump($data);

答案 1 :(得分:0)

就像这样

function my_array_tolowcase(&$array)
{
    foreach($array as &$arr)
    {
        $arr["name"] =strtolower($arr["name"]);
    }
}