I have this array.
$test['color'][0] = "red";
$test['color'][1] = "blue";
$test['color'][2] = "black";
$test['plug'][3] = "US";
$test['plug'][4] = "UK";
我正在尝试从上面的数组中实现这一点。
$test2['color'] = "red,blue,black";
$test2['plug'] = "US,UK";
实现这一点的最佳逻辑是什么。
您可以很好地使用一些逻辑和一些 PHP 函数:
<?php
$array['color'][0] = "red";
$array['color'][1] = "blue";
$array['color'][2] = "black";
$array['plug'][3] = "US";
$array['plug'][4] = "UK";
$test2=array();
foreach($array as $key=>$val)
{
$test2[$key]=implode(',',$val);
}
print_r($test2);
?>
输出:
Array
(
[color] => red,blue,black
[plug] => US,UK
)
编辑:第一个答案是错误的并且过于复杂。这是一种单一控制结构解决方案。
$test2['color'] = implode(',', $test['color']);
$test2['plug'] = implode(',', $test['plug']);
print_r($test2);
在每一行调用
implode()
并使用逗号作为粘合字符。 array_map()
是一种迭代行的简洁方法。
代码:(演示)
var_export(
array_map(fn($row) => implode(',', $row), $test)
);
输出:
array (
'color' => 'red,blue,black',
'plug' => 'US,UK',
)