如何将数组的值合并为数组中相似键的逗号分隔字符串

问题描述 投票:0回答:3
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 arrays
3个回答
2
投票

您可以很好地使用一些逻辑和一些 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
)

编辑:第一个答案是错误的并且过于复杂。这是一种单一控制结构解决方案。


0
投票
$test2['color'] = implode(',', $test['color']);
$test2['plug'] = implode(',', $test['plug']);

print_r($test2);

0
投票

在每一行调用

implode()
并使用逗号作为粘合字符。
array_map()
是一种迭代行的简洁方法。

代码:(演示

var_export(
    array_map(fn($row) => implode(',', $row), $test)
);

输出:

array (
  'color' => 'red,blue,black',
  'plug' => 'US,UK',
)
© www.soinside.com 2019 - 2024. All rights reserved.