php - 交换 php 中找到的数组键

标签 php mysql arrays

我从一个 MySQL 查询(不是我设计的)开始,它返回如下所示的结果:

 $row['user_name'];
 $row['user_property']
 $row['user_property_2']
 $row['day_1']
 $row['day_2']
 $row['day_3']
 $row['day_4']
 $row['day_5']

我想要做的是快速(理想情况下一步,而不是循环)替换(重新键入)包含“day_”的所有字段名称以仅包含数字,结果是:

 $row['user_name'];
 $row['user_property']
 $row['user_property_2']
 $row['1']
 $row['2']
 $row['3']
 $row['4']
 $row['5']

但对其他字段名称键没有任何风险。

我想象一些涉及“交换”数组的解决方案,例如:

 $swap_array = ('day_1' => 1, 'day_2' => 2,'day_3' => 3, 'day_4' => 4, 'day_5' => 5);

但我不确定用什么函数来实现交换数组。我确信我以前见过这样的 native 函数,但找不到它。

最佳答案

$arr = 
array_combine(
  explode(',', 
    preg_replace('/day_/', '', implode(',', array_keys($row)))), $row);

PS:循环有什么问题?

潜在问题 1 - 如果像 day_now 这样的返回键可能会导致问题
潜在问题 2 - 如果返回键包含逗号,可能会导致问题

但是,这两个潜在问题都可以通过增强上面的正则表达式来解决

<小时/>

对于原生函数,is array_map that you looking for?

关于php - 交换 php 中找到的数组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847900/

相关文章:

mysql - 如何使用脚本将此日期格式转换为 mysql

php mysql - 更新表中的多行

php - php mysql查询的问题

php - 在 Google App Engine 上使用 Python、PHP 和 HTML 制作应用程序

PHP MySql : SUM table value Where ="from-other-table"?(内连接)

javascript - 在 JavaScript 中按周和月对日期 "yyyy-mm-dd"的简单数组进行分组

mysql - PHP 嵌套循环 - 根据每周可用时间获取生产订单准备日期

MySQL 返回应该为 Null 的值

java - 使用 JSONPath 迭代大型 JSON 数组

c - C 中的字符串数组