php - 如何也将列设置为 Upper 并删除集合 laravel 中的符号 _

标签 php mysql laravel laravel-6

所以我想将列名和值设为大写

例子:

$collection = collect([
    ['name' => 'Sally'],
    ['school_name' => 'Arkansas'],
    ['age' => 28]
]);

$flattened = $collection->flatMap(function ($values) {
    return array_map('strtoupper', $values);
});

$flattened->all();

// ['name' => 'SALLY', 'school_name' => 'ARKANSAS', 'age' => '28'];

我也想将 'name, school_name, age' 设为 Upper。该代码仅使值变为上层而不是列名

最佳答案

<?php

$arr = ['name' => 'Sally', 'school_name' => 'Arkansas', 'age' => '28'];

$out = [];
$replace = '';
array_walk($arr, function($val, $key) use (&$out, $replace) {
    $key2 = strtoupper($key);
    $key2 = str_replace('_', $replace, $key2);
    $out[$key2] = strtoupper($val);
});

echo "before:\n";
print_r($arr);

echo "after:\n";
print_r($out);

给出结果:

before:
Array
(
    [name] => Sally
    [school_name] => Arkansas
    [age] => 28
)
after:
Array
(
    [NAME] => SALLY
    [SCHOOLNAME] => ARKANSAS
    [AGE] => 28
)

$replace 更改为您想要的任何字符或保留为空字符串以删除下划线。

PHP 手册引用:

  1. array_walk
  2. strtoupper
  3. str_replace
  4. Anonymous functions
  5. Passing by Reference

关于php - 如何也将列设置为 Upper 并删除集合 laravel 中的符号 _,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58812363/

相关文章:

php - 范围包括 '1' 的 BETWEEN 也返回 '10'

mysql - 哪个 SQL 查询需要更多时间? (MySQL)

php - 如何区分 mysql 时间戳和 php 当前时间?

php - echo 和 (var_dump 或 print_r) 在 laravel 对象上显示完全不同的内容

php - Laravel 搜索重复返回数据

php - jquery中每行表中动态创建的按钮

php - 使用 Laravel 从数组中获取 JSON 值

php - 如何以编程方式直接从 PHP 中的数组 HTTP POST CSV 文件?

从上周开始的不同时间段的 MySQL 用户事件

php - 在 laravel-8 中找不到 Laravel PHP 错误 404