PHP Laravel 将数组值转换为大写

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/41115973/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 02:19:31  来源:igfitidea点击:

PHP Laravel Convert array value to upper case

phplaravellaravel-5laravel-5.2laravel-5.3

提问by Antonio Morales

I have an array with multiples values in my Laravel project:

我的 Laravel 项目中有一个包含多个值的数组:

array:1434 [▼
  0 => array:53 [▼
    "contact" => "ANA (dependienta)"
    "mail" => "[email protected]"
    "phone2" => ""
    "phone3" => ""
    "web" => "0"
    "active" => true
    "province" => "Zaragoza"

  ]
  1 => array:53 [▼
    "contact" => "HymanELINE * VIVIANA"
    "mail" => "[email protected]"
    "phone2" => ""
    "phone3" => ""
    "web" => "0"
    "active" => true
    "province" => "Barcelona"

  ]

I want transform to upper case only the province value, I want to get this result:

我只想将省值转换为大写,我想得到这个结果:

array:1434 [▼
  0 => array:53 [▼
    "contact" => "ANA (dependienta)"
    "mail" => "[email protected]"
    "phone2" => ""
    "phone3" => ""
    "web" => "0"
    "active" => true
    "province" => "ZARAGOZA"

  ]
  1 => array:53 [▼
    "contact" => "HymanELINE * VIVIANA"
    "mail" => "[email protected]"
    "phone2" => ""
    "phone3" => ""
    "web" => "0"
    "active" => true
    "province" => "BARCELONA"

  ]

Exists any method or way to make this with Laravel Collection or other alternatives?

是否存在使用 Laravel Collection 或其他替代方法来实现此目的的任何方法或方式?

回答by Alexey Mezenin

If you're getting data from DB by using Eloquent, you could create an accessor

如果您使用 Eloquent 从数据库获取数据,您可以创建一个访问器

public function getProvince($value)
{
    return strtoupper($value);
}

If not, you could change it manually:

如果没有,您可以手动更改它:

for ($i = 0; $i < count($data); $i++) {
    $data[$i]['province'] = strtoupper($data[$i]['province']);
}

回答by Bara' ayyash

$collectionis the array of objects, then try to use this way :

$collection是对象数组,然后尝试使用这种方式:

$collection = collect($array);

$keyed = $collection->keyBy(function ($item) {
    return strtoupper($item['province']);
});

$keyed->all();

回答by Beginner

for ($i = 0; $i < count($rp_shops); $i++) { 
    $rp_shops[$i]['province'] = strtoupper($rp_shops[$i]['province']); 
} 
dd($rp_shops) 

or

或者

foreach ($rp_shops as $key => $rp_shop) { 
    $rp_shops[$key]['province'] = strtoupper($rp_shop['province']); 
} 
dd($rp_shops)