【问题标题】:PHP Use array map to reOrder an arrayPHP 使用数组映射对数组重新排序
【发布时间】:2016-07-08 10:05:29
【问题描述】:

我需要用一个函数重新排序这个数组。

来自(我的实际数组):

array:2 [▼
  0 => array:2 [▼
    "way" => 0
    "period" => "MONTH"
  ]
  1 => array:2 [▼
    "way" => 1
    "period" => "3MONTHS"
  ]
]

到(我想要这个数组):

array:2 [▼
  0 => array:1 [▼
    "MONTH" => 0
  ]
  1 => array:1 [▼
    "3MONTHS" => 1
  ]
]

我可以用array_map() 函数做到这一点吗?

【问题讨论】:

  • 你为什么不试试看能不能?
  • 您可能正在寻找array_column()
  • 预期是错误的。内部数组有一个元素,你显示array:2
  • @Anant 这是手工制作的阵列 :)
  • @splash58 。是的,您是对的,但是如果人们添加真正的数组会更好,这样可以很容易地直接使用程序进行复制和执行

标签: php arrays array-map


【解决方案1】:

您可以简单地使用 foreach 代替 as

foreach($your_arr as &$v){
    $v = [$v["period"] => $v["way"]];
}
print_r($your_arr);

或使用array_map

$your_arr = array_map(function($v){ return [$v["period"] => $v["way"]]; },$your_arr);
print_r($your_arr);

【讨论】:

    【解决方案2】:

    使用 array_column() 作为

    $data = array_column($array, 'way','period');
    

    period 转换为键并将way 转换为值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      相关资源
      最近更新 更多