2011-06-09 70 views
-1

我有以下數組內容:的foreach結合瓦爾問題

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

現在我想如果想呼應$ achternaam和$ voornaam值是空的使用此代碼

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

。 有誰知道如何將這個變量綁定到彼此。

結果應該是$ achternaam = Jansen和$ roepnaam = Theo。

Tnx幫助!

+0

的foreach不給所謂的 '關聯數組'。所以你可以做$ achternaam = $ r [0]。 – 2011-06-09 09:04:45

+0

不是Theo Jansen是否使用遺傳算法設計了一些美麗的步行機制?涼! – heltonbiker 2011-07-03 22:50:10

回答

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

$values元素是字符串,而不是數組。要訪問achternaamroepnaam值,你需要刪除的foreach:

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

如果achternaamroepnaam鍵的位置不會改變,你可以使用list還有:

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

這如果密鑰的順序是achternaam,roepnaam,則可能是。即$values['achternaam']需要在$values['roepnaam']之前分配。

+0

你可以在每個循環中使用一個列表嗎? – DownDown 2011-06-09 09:08:47

+0

@DownDown:沒問題,你可能想閱讀http://nl2.php.net/manual/en/language.types.array。php too – Lekensteyn 2011-06-09 09:09:12

0

這應該工作:

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

嘗試雖然...

0

,如果你想有一個以上的人使用嵌套數組:

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

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

如果你想使用陣列雖然留着,你可以不用的foreach:

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

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

它看起來你誤解了foreach的工作原理。對於循環的每次迭代,變量$r都有一個字符串值 - 第一次是「Jansen」,第二次是「Theo」。

你想達到的效果是可以做到這樣的:

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

小心,在你的數組鍵是從未來雖然 - 在你的腳本的代碼可能會覆蓋其他敏感的變量。

+0

這個構造也可以用'extract($ values)'完成。 – Lekensteyn 2011-06-09 09:07:59