我有一个关联数组$assoc
,并且需要将其简化为字符串,在这种情况下
$OUT = "<row";
foreach($assoc as $k=>$v) $OUT.= " $k=\"$v\"";
$OUT.= '/>';
怎么做以优雅的方式 https://stackoverflow.com/q/29200367/287948同样的事情,但是使用array_reduce()
与以下算法接近相同(性能较低且易读性较低)array_walk()
功能,
array_walk( $row, function(&$v,$k){$v=" $k=\"$v\"";} );
$OUT.= "\n\t<row". join('',array_values($row)) ."/>";
Ugly解决方案与array_map()
(然后再次join()
as reducer):
$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()
不支持关联数组(why??).