【问题标题】:Array map, flatten, and unset on a single multidimensional array在单个多维数组上进行数组映射、展平和取消设置
【发布时间】:2017-01-18 22:26:03
【问题描述】:

我有一个格式的多维数组:

Array
(
[0] => Array
    (
        [course_prefix] => AERO
        [0] => AERO
        [course_number] => 101
        [1] => 101
    )

[1] => Array
    (
        [course_prefix] => AERO
        [0] => AERO
        [course_number] => 102
        [1] => 102
    )

[2] => Array
    (
        [course_prefix] => AERO
        [0] => AERO
        [course_number] => 201
        [1] => 201
    )
)

我正在尝试执行三个操作:

  1. 使用 [0] 和 [1] 键取消设置所有元素,
  2. 组合每个子数组中的 [course_prefix] 和 [course_number] 值,
  3. 扁平化为单个数组

这样最终的结果就是

Array
(

"AERO 101",

"AERO 102",

"AERO 201"

)

我知道array_map 可以组合两个不同的数组,而unset 会删除元素,但是当所有内容都在同一个多维数组中时,我该如何执行这些操作 - 例如取消设置不在顶层的元素,并组合值?

【问题讨论】:

  • 首先修改你的数据库获取,只返回一个关联数组,而不是两者
  • 为什么不首先创建01 键?看起来这是来自数据库查询。如果您使用fetch_assoc 而不是fetch_array,它将只返回命名索引。
  • 您也可以使用 db 查询为您合并两列,因此您无需在 PHP 中执行此操作
  • 感谢您的反馈;我实际上对 SQL 很陌生,并没有意识到可以在查询中连接列(我也没有意识到 PDO 在其响应中返回数据库数据的两个版本),所以在修改我的查询和只获取关联数组我已经完成了所有事情而没有在 PHP 中处理结果

标签: php arrays multidimensional-array array-map


【解决方案1】:

这是一个简单的array_map

$new_array = array_map(function($row) {
    return $row['course_prefix'] . ' ' . $row['course_number'];
}, $array);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    相关资源
    最近更新 更多