array_reduce() 不能用作 PHP 的关联数组“化简器”?
2022-08-30 17:05:28
我有一个关联数组,并且需要简化为一个字符串,在此上下文中$assoc
$OUT = "<row";
foreach($assoc as $k=>$v) $OUT.= " $k=\"$v\"";
$OUT.= '/>';
如何以优雅的方式做同样的事情,但使用array_reduce()
几乎相同的算法(较低的性能和较低的易读性)与功能,array_walk()
array_walk( $row, function(&$v,$k){$v=" $k=\"$v\"";} );
$OUT.= "\n\t<row". join('',array_values($row)) ."/>";
丑陋的解决方案(再次作为减速器):array_map()
join()
$row2 = array_map(
function($a,$b){return array(" $a=\"$b\"",1);},
array_keys($row),
array_values($row)
); // or
$OUT ="<row ". join('',array_column($row2,0)) ."/>";
PS:显然PHP不支持关联数组(为什么??)。array_reduce()