cal*_*die 1 php arrays multidimensional-array
我想转换它.
$data1 = array(
array('value' => '100.00', 'total' => '32'),
array('value' => '10.00', 'total' => '13'),
array('value' => '200.00', 'total' => '39'),
array('value' => '190.00', 'total' => '11'),
);
Run Code Online (Sandbox Code Playgroud)
进入这个
$data2 = array(
'value' => array(0 => '100.00', 1 => '10.00', 2 => '200.00', 3 => '190.00'),
'total' => array(0 => '32', 1 => '13', 2 => '39', 3 => '11')
);
Run Code Online (Sandbox Code Playgroud)
我可以通过迭代顶部数组,然后附加到一系列数组,以迂回的方式做到这一点,但我认为必须有一个我不知道的php数组函数可以更简洁地做到这一点.
http://www.php.net/manual/en/ref.array.php
值是浮点数和整数(如果它有任何区别),我只是在示例代码中将它们添加为字符串,因为它更容易读取IMO.最终数组顺序应与初始顺序匹配.我会给予最少LOC的正确答案,提供的性能并不比"长"版本差得多.PHP 5.4.
如果PHP有一个array_pluck函数,那就很简单了.
function array_pluck(array $array, $field)
{
return array_map(function($row) use ($field) { return $row[$field]; }, $array);
}
$data2 = array(
'value' => array_pluck($data1, 'value'),
'total' => array_pluck($data1, 'total')
);
Run Code Online (Sandbox Code Playgroud)
我认为这和阅读一样简单,但是你会在每个场上循环整个数组,因此它不是最佳解决方案.
就个人而言,这种情况我可能会坚持使用foreach解决方案,但尝试将其包含在一些可重用的功能中.