-1

我有以下示例数组:

Array
(
    [0] => Array
        (
            [artist] => Artist43141
        )

    [1] => Array
        (
            [artist] => Artist2313
        )

    [2] => Array
        (
            [artist] => ArtistAdsa
        )

    [3] => Array
        (
            [artist] => ArtistAadas
        )

)

我如何把它变成这样的东西:“Artist43141,Artist2313,ArtistAdsa,ArtistAadas”

我想知道,因为就我尝试回答的一些类似问题而言,我无法找到答案。

4

2 回答 2

5

我会说这样的事情会很好用:

$newArray = array_map(function($a) {return $a['artist'];},$oldArray);

不需要循环或任何如此复杂的东西。

于 2013-07-29T20:24:59.930 回答
0

您想创建一个仅包含数组值的空格分隔字符串。

为此,请尝试:

<?php

$array = Array
(
    array(
            'artist' => 'Artist43141'
    ),

    array(
            'artist' => 'Artist2313'
    ),

    array(
            'artist' => 'ArtistAdsa'
    ),

    array(
            'artist' => 'ArtistAadas'
    ),
);

$str = implode(' ', array_map(function($a){ return current($a); }, $array));

查看有关current()array_map()的 PHP 手册,以了解有关上述示例的更多信息。

快乐编码!


编辑:

根据您的评论:

我还有一个问题,我的艺术家价值观之一有一个特殊字符“é”,现在它不会打印它们。我应该在哪里应用 htmlspecialchars() (如果应该应用的话)?

…我想在这个答案中添加以下内容:

像这样修改上面的代码示例以处理字符编码(假设您使用的是 UTF-8 编码):

$str = implode(' ', array_map(function($a)
{
    return htmlentities(current($a));
}, $array));

如果您还没有使用 utf8,请通过将其添加到您的 php 代码中开始这样做,该代码会回显到浏览器:

header('Content-Type: text/html; charset=utf-8');

或 html 文件的标题部分中的以下内容:

<!DOCTYPE html>
<html>
<head>
  <meta charset=utf-8" />
  ...

因此,请阅读 PHP 的htmlentities()utf8 encoding

玩得开心。

于 2013-07-29T20:41:56.583 回答