2017-08-25 1 views
0

すべての結果から1つの文字列を作成するために、preg_match_allの配列をループしています。PHPは配列をループして要素を1つの文字列にします

アレイは、次のようになります。

print_r($matches[0]); 


Array 
(
    [0] => Array 
     (
      [0] => 8147 
      [1] => 3 
     ) 

    [1] => Array 
     (
      [0] => 8204 
      [1] => 20 
     ) 

) 

そして、私のコード:

$found = count($matches[0]); 
for ($i = 0; $i <= $found; $i++) { 
$string = $matches[0][$i]; 
} 

私はこのような$stringの結果を取得したいと思います:8147, 8204

私は$matches[0][1]$matches[0][0]を追加するにはどうすればよいですループを使用して文字列変数内で?

+0

$文字列。= $マッチ[0] [I $ ]。 "、"; – Oleg

答えて

1

内破し、より使い配列として特定の列を取得するためにarray_column使用使用可能array_column + implode

echo implode(', ', array_column($matches, 0)); 
+0

それはうまくいった。ありがとうございました。 – AdrianM2

1

次のコードを試してください。配列をループし、取得値

$arr =Array 
(
    0 => Array 
     (
      0 => 8147, 
      1 => 3 
     ), 

    1 => Array 
     (
      0 => 8204, 
      1 => 20 
     ) 

); 
$match_array = array(); 
foreach($arr as $key=>$value) 
{ 
    $match_array[] = $value[0]; 
} 
$str = implode(",",$match_array); 
echo $str; 

DEMO

または単にあなたをphp5.5で

$arr =Array 
(
    0 => Array 
     (
      0 => 8147, 
      1 => 3 
     ), 

    1 => Array 
     (
      0 => 8204, 
      1 => 20 
     ) 

); 
$match_array = array_column($arr,0); 

$str = implode(",",$match_array); 
echo $str; 

DEMO

2

あなたはarray_column、配列をループする必要はありません使用できるよう

$string = ""; 
foreach($matches[0] as $value) { 
    $string .= $value[0].", "; 
} 
$string = rtrim(", ",$string); 
1

のように、このいくつかのティンを行うことができます

$result = join(',', array_column($arr, 0)); 
関連する問題