it-swarm-pt.tech

PHP Laravel Converte o valor da matriz em maiúsculas

Eu tenho uma matriz com múltiplos valores no meu 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"

  ]

Quero transformar em maiúsculas apenas o valor da província, quero obter este resultado:

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"

  ]

Existe algum método ou maneira de fazer isso com Laravel Collection ou outras alternativas?

4
Antonio Morales

Se estiver obtendo dados do DB usando o Eloquent, você poderá criar um acessador

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

Caso contrário, você pode alterá-lo manualmente:

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

$collection é a matriz de objetos e tente usar desta maneira:

$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) 

ou

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