-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));

PHP マニュアルでcurrent()array_map()を確認して、上記の例が何を行っているかを確認してください。

ハッピーコーディング!


編集:

あなたのコメントによると:

もう 1 つ問題があります。私のアーティストの値の 1 つに特殊文字 'é' があり、現在はそれらが印刷されません。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 に答える