foreach绑定vars问题

时间:2011-06-09 09:00:07

标签: php foreach

我有以下数组内容:

  Array ( [achternaam] => Jansen [roepnaam] => Theo ) 

现在我想使用此代码

 foreach ($values as $r) {
    $achternaam = $r['achternaam'];
    $roepnaam = $r['roepnaam'];      
 }

当想要回显$ achternaam和$ voornaam时,值为空。 有谁知道如何将这些变量绑定到彼此。

结果应该是$ achternaam = Jansen和$ roepnaam = Theo。

Tnx的帮助!

5 个答案:

答案 0 :(得分:1)

$values = array(
    'achternaam' => 'Jansen',
    'roepnaam' => 'Theo'
);

$values的元素是字符串,而不是数组。要访问achternaamroepnaam值,您需要删除foreach:

$achternaam = $values['achternaam'];
$roepnaam = $values['roepnaam'];

如果achternaamroepnaam键的位置没有变化,您也可以使用list

list($achternaam, $roepnaam) = $values;

如果密钥的顺序为achternaamroepnaam,则。即需要在$values['achternaam']之前分配$values['roepnaam']

答案 1 :(得分:0)

这应该有效:

$values = array('achternaam' => 'Jansen', 'roepnaam' => 'Theo');
list($achternaam, $roepnaam) = $values;

试试吧......

答案 2 :(得分:0)

如果您想拥有多个人,请使用嵌套数组:

<?php
$values = array(
  array(
    'achternaam' => 'Jansen',
    'voornaam' => 'Theo',
    'club' => 'Ajax'
  )
);

foreach ($values as $r) {
  $achternaam = $r['achternaam'];
  $roepnaam = $r['roepnaam'];      
  echo $roepnaam . ' ' . $achternaam;      
}

如果你想继续使用那个数组,你可以不用预先做到这一点:

<?php
$values = array(
  'achternaam' => 'Jansen',
  'voornaam' => 'Theo',
  'club' => 'Ajax'
);

$achternaam = $values['achternaam'];
$roepnaam = $values['roepnaam'];      
echo $roepnaam . ' ' . $achternaam;

答案 3 :(得分:0)

看起来你误解了foreach的工作方式。对于循环的每次迭代,变量$r都有一个字符串值 - 第一次是“Jansen”,第二次是“Theo”。

您尝试实现的结果可以这样完成:

foreach($values as $k => $r) {
    $$k = $r;
}

请注意数组密钥的来源 - 因为此代码可能会覆盖脚本中的其他敏感变量。

答案 4 :(得分:0)

一行简单的代码怎么样: extract($values)

http://php.net/manual/en/function.extract.php