2011-02-07 126 views
1

我有一个数组,看起来像下面的一个。我想迭代一个循环,并将相应的字符串分配给3个不同的变量。因此,例如:PHP循环数组赋值

输出

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

什么会是这样的一个短(美国东部时间)的方式?感谢

初始阵列

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 2011-02-07 14:52:31

+0

问题是:什么是问题.. !! ?? – Sigtran 2011-02-07 14:56:56

回答

5

这是variables variables的情况下:

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

但是,您可能并不真正需要它们。我会用一个数组来代替:

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