web-dev-qa-db-ja.com

PHP Laravel配列の値を大文字に変換する

Laravelプロジェクトに複数の値を持つ配列があります:

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

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

  ]

州の値のみを大文字に変換したいのですが、次の結果を取得したいと思います。

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

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

  ]

Laravelコレクションまたは他の代替手段でこれを作成する方法または方法はありますか?

4
Antonio Morales

Eloquentを使用してDBからデータを取得している場合は、 アクセサーを作成

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

そうでない場合は、手動で変更できます。

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

$collectionはオブジェクトの配列であり、次のように使用してみてください。

$collection = collect($array);

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

$keyed->all();
1
Bara' ayyash
for ($i = 0; $i < count($rp_shops); $i++) { 
    $rp_shops[$i]['province'] = strtoupper($rp_shops[$i]['province']); 
} 
dd($rp_shops) 

または

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