将非线性数值 PHP 数组索引转换为数组值

吉姆肖特

我有一个包含月份(键)和值的数组,请参见下面的缩短示例。它是由遗留客户端系统生成的,所以我只能操纵我所看到的(不理想)。

$cost_data= array
            (
                [9] => 1110
                [10] => 111
                [8] => 100
                [7] => 200
                [6] => 690
                [11] => 222
            )

注意——非线性键代表一年中的几个月。

我需要将数据结构更改为以下格式,并且在尝试不同的方法和搜索几个小时后运气不佳。

   $cost_data = array
   (
     array("9",1110),
     array("10",111),
     array("8",100),
     array("7",200),
     array("6",690),
     array("11",222)
    );  

是否有一个简单的内置函数,或者有没有人知道实现这种转换的简洁方法?

艺术凤凰

这是我的去处。

<?php
$cost_data= [
    9 => 1110,
    10 => 111,
    8 => 100,
    7 => 200,
    6 => 690,
    11 => 222,
];

asort($cost_data);  //sort

array_walk($cost_data,function(&$v,$k){
    $v = [$k,$v];
});

print_r(array_values($cost_data));

输出(经过一些清理):

array (
  0 => array(9,1110),
  1 => array(10,111),
  2 => array(8,100),
  3 => array(7,200),
  4 => array(6,690),
  5 => array(11,222)
)

你可以在这里测试。

http://sandbox.onlinephpfunctions.com/code/95557489eb19e9e34c55abef71accd1219682350

如果您不关心键,您可以跳过array_values重置数字索引的 ,并节省一点性能。没有array_values它看起来像这样

array (
  9 => array(9,1110),
  10 => array(10,111),
  8 => array(8,100),
  7 => array(7,200),
  6 => array(6,690),
  11 => array(11,222)
)

所以,就像我说的,你可以通过忽略它来节省一点性能。我没有测量它,但我敢打赌它比 array_map 快一点,因为它确实通过引用传递。

更新

我给array_map我的 都计时了array_walk对于 30k 次迭代

Array Walk Time: 0.045436
Array Map Time: 0.047619 

我会说它们两者之间没有显着差异。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

php将数组转换为简单值

来自分类Dev

PHP将数组的Puttin值转换为多维数组

来自分类Dev

PHP将值从多维数组转换为数组

来自分类Dev

将数组中的不同索引值转换为 php 中的另一个数组

来自分类Dev

PHP:将逗号分隔的值转换为整数数组

来自分类Dev

PHP:将逗号分隔的值转换为整数数组

来自分类Dev

将Javascript数组转换为PHP数组

来自分类Dev

将Javascript数组转换为PHP数组

来自分类Dev

将php数组转换为js数组

来自分类Dev

如何使用索引作为键将PHP数组转换为关联数组?

来自分类Dev

将关联数组php中的索引数组转换为循环

来自分类Dev

如何将 PHP 多维关联数组转换为更简单的索引数组

来自分类Dev

将数组插入非线性方程

来自分类Dev

我如何将数组转换为哈希,其键是数组值,而值是数组的索引

来自分类Dev

PHP / JS:将PHP数组转换为JavaScript数组

来自分类Dev

PHP / JS:将PHP数组转换为JavaScript数组

来自分类Dev

将值转换为NumPy数组中的行索引

来自分类Dev

将值转换为NumPy数组中的行索引

来自分类Dev

将数组索引转换为自定义值?

来自分类Dev

PHP将数组转换为XML

来自分类Dev

递归将XML转换为PHP数组

来自分类Dev

将PHP数组转换为SQL语句?

来自分类Dev

将php数组转换为json

来自分类Dev

将PHP数组转换为Json对象

来自分类Dev

将树结构转换为php数组

来自分类Dev

将JSON代码转换为php数组

来自分类Dev

使用PHP将数组转换为json

来自分类Dev

将php JSON对象转换为数组

来自分类Dev

php | 将数组转换为选择框