2011-02-07 24 views
1

私は以下のような配列を持っています。私はループを繰り返し、3つの異なる変数に対応する文字列を割り当てたいと思います。そう例えば:PHPループ配列の割り当て

出力

$mike = 'foo - '; 
$john = 'bar foo foo - bar foo foo - bar foo bar - ' 
$bob = 'bar foo bar bar foo - bar foo - ' 

これを行うの短い(EST)の方法だろうか?

foreach ($array as $key => $values) { 
    $$key = implode($values); 
} 

は、しかし、あなたが実際にそれらを必要としないことがあります。おかげで

初期配列

Array 
(
    [mike] => Array 
     (
      [0] => foo - 
     ) 
    [john] => Array 
     (
      [0] => bar foo foo - 
      [1] => bar foo foo - 
      [2] => bar foo bar - 
     ) 
    [bob] => Array 
     (
      [0] => bar foo bar - 
      [1] => bar foo - 
      [2] => bar foo - 
     ) 
) 
+0

私はそれを得ることはありません。 – powtac

+0

質問は何ですか?質問は何ですか? – Sigtran

+0

は基本的に3つの変数($ mike、$ john、$ bob)を作成し、対応する要素を各varに割り当てます。 '$ john = $ array ['john'] [0]。$ array ['john'] [1]。$ array ['john'] [2] ...'を実行したくないこの例では '$ john'にすべての要素が追加されています – Mike

答えて

5

これはvariables variablesの場合です。私の代わりに、配列を使用します。

$result = array(); 
foreach ($array as $key => $values) { 
    $result[$key] = implode($values); 
} 

は、だからあなたが取得したい:

Array 
(
    [mike] => foo - 
    [john] => bar foo foo - bar foo foo - bar foo bar - 
    [bob] => bar foo bar - bar foo - bar foo - 
) 
+0

ありがとう、それは私が探していたものです! – Mike

+0

+1アレイのメンテナンスを推奨します –

1

使用extract()implode()

$a = array('mike' => array('foo -'), 
      'john' => array('bar foo foo - ', 
          'bar foo foo - ', 
          'bar foo bar - ' 
          ), 
      'bob' => array('bar foo bar - ', 
          'bar foo - ', 
          'bar foo - ' 
          ) 
     ); 

foreach($a as $k => $v) { 
    $a[$k] = implode(' ',$v); 
} 
extract($a); 

var_dump($mike); 
var_dump($john); 
var_dump($bob);