2016-05-28 11 views
1

私はこのような配列があります。配列アイテムの1種類から文字列を作成するには?

$results = $stmt->fetchAll(PDO::FETCH_ASSOC); 

/* 
Array 
(
    [0] => Array 
     (
      [id] => 191 
      [type] => 3 
      [table_code] => 15 
     ) 

    [1] => Array 
     (
      [id] => 192 
      [type] => 3 
      [table_code] => 15 
     ) 

    [2] => Array 
     (
      [id] => 194 
      [type] => 3 
      [table_code] => 15 
     ) 
) 
*/ 

をそして私はカンマ区切りですべてのIDの文字列を作成しようとしています。このようなもの:

echo $ExpectedOutput; // 193, 192, 194 

どうすればいいですか?

foreach($results as $item) { 
    $ExpectedOutput = $item['id']; 
} 

しかし、常に,は、その文字列の末尾にあります。ここでは


は、私がこれまで試したものです。

+1

使用 'エコー破( ""、array_column($ arrが、 "ID"))' –

答えて

3

implodearray_columnを使用してこれを行うことができます。

Array Columnは、その配列のすべてのidから配列を作成し、その後、その配列からデリミタを含む文字列を作成します。 ,を使用したいと思っています。

echo implode(", ", array_column($results, "id")); //193, 192, 194 
+0

は... 1 –

2

この

foreach($results as $item) { 
    if($ExpectedOutput) 
     $ExpectedOutput .= ','; 
    $ExpectedOutput .= $item['id']; 
} 

echo $ExpectedOutput; //193, 192, 194 
+0

はありがとうありがとうに... 1 –

1

がSUBSTR関数を使用して、最終的なコンマを除去するために、あなたのコードにもう1行を追加してみてください。

if($expectedOutput != '') 
    $expectedOutput = substr($expectedOutput,0,-1); 
echo $expectedOutput; // 191, 192, 194 
+0

標準ではないのですが、それは動作するはずです。ありがとう+1 –

+1

5月... implodeとarray_column関数を使うのが最善の方法です。 @フラインコノックの答え –

関連する問題