php循环数组赋值

时间:2011-02-07 14:50:36

标签: php arrays

我有一个类似下面的数组。我想迭代一个循环并为3个不同的变量分配相应的字符串。例如:

输出

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

这样做的简短(est)方法是什么?感谢

初始数组

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

2 个答案:

答案 0 :(得分: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 :(得分: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);