将多维数组简化为字符串

时间:2016-07-22 08:52:20

标签: php arrays

我的$tag变量中有这种数组。

Array
(
    [0] => Array
        (
            [tag_name] => tag-1
        )
    [1] => Array
        (
            [tag_name] => tag-2
        )
    [2] => Array
        (
            [tag_name] => tag-3
        )
)

我要做的是获取所有标记名称并用昏迷内嵌它们然后将其作为文本输入字段的值。

我已经尝试过和循环循环这么多不同的方法,但没有太大的成功。如果有帮助,我正在使用CodeIgniter。

4 个答案:

答案 0 :(得分:3)

您可以使用array_column,然后使用joinimplode

试试这个:

$string = join(',', array_column($array, 'tag_name'));

<强>解释

array_column返回输入数组

中单个列的值

对于你的数组,array_column($array 'tag_name')返回一个包含索引tag_name值的数组,即返回的数组将为:

Array
(
    [0] => tag-1
    [1] => tag-2
    [2] => tag-3
)

加入joinimplode,即可获得所需的字符串

//$string = "tag-1,tag-2,tag-3"

答案 1 :(得分:2)

一个简单而明显的解决方案可能是:

$res = "";
for ($i = 0; $i < count($tag); $i++) {
    $res .= $tag[$i]["tag_name"] . ",";
}
$res = trim($res, ","); //Removing the extra commas
echo $res;

您基本上遍历数组,并迭代每个元素,将其tag_name添加到$res字符串。

答案 2 :(得分:2)

使用array_column

<StaticVirtualNetworkIPAddress>ip-address</StaticVirtualNetworkIPAddress>

使用array_map

$tag = implode(', ', array_column($array, 'tag_name'));

答案 3 :(得分:1)

简单的一个班轮!!

$array = [
    [
        "tag_name" => 'tag-1'
    ],
    [
        "tag_name" => 'tag-2'
    ],
    [
        "tag_name" => 'tag-3'
    ],
];

implode(',', array_column($array, 'tag_name'));