2012-12-04 82 views
1

我在執行foreach循環時動態命名我的PHP變量時遇到問題。這裏是我的代碼:在循環中動態地命名PHP變量

$count = count($_POST['member']); 
for ($i = 0; $i < $count; $i++) { 
    $fname = $_POST['member'][$i]['fname']; 
    $lname = $_POST['member'][$i]['lname']; 
} 

我怎麼會追加包含在$i人數$fname & $lname使$fname & $lname成爲$fname1 & $lname_2等等?或者有更好的方法來做到這一點?我沒有嘗試過的作品。

+0

你最終的目標是什麼? –

+0

@TheSmose我的主要目標是將所有信息存儲在稍後可以檢索的$ _SESSION變量中。假設添加了7個新的「聯繫人」,我想遍歷數據並將每個值存儲到$ _SESSION變量 – three3

回答

0

編輯:回答你的新問題 - 如何存儲會話:

session_start(); 
$count = count($_POST['member']); 
for ($i = 0; $i < $count; $i++) { 
    $_SESSION["fname_{$i}"] = $_POST['member'][$i]['fname']; 
    $_SESSION["lname_{$i}"] = $_POST['member'][$i]['lname']; 
} 
+0

我的主要目標是將所有信息存儲在稍後可以檢索的$ _SESSION變量中。說有7個新的「聯繫人」添加,我想循環訪問數據,並將每個值存儲到$ _SESSION變量 – three3

+0

這是一個不同的問題...現在將添加一個解決方案 –

+0

真棒,我現在會測試它。會讓你知道它是怎麼回事 – three3

-1

嗨嘗試簡單concatination(「」)PHP的運營商。所以你的代碼會

$count = count($_POST['member']); 
for ($i = 0; $i < $count; $i++) { 
    $fname = $_POST['member']['fname'.$i]; 
    $lname = $_POST['member']['lname_'.$i]; 
} 
0

試試這個

$count = count($_POST['member']); 
for ($i = 0; $i < $count; $i++) { 
$fname.'_'.$i = $_POST['member'][$i]['fname']; 
$lname.'_'.$i = $_POST['member'][$i]['lname']; 
} 

所以,你可以訪問$ fname_1,$ fname_2等等

+0

這不會起作用 –

+0

@TheSmose你是對的,這不工作 – three3

1
$i = 0; 
$output = array(); 

foreach ($_POST['member'] as $member) 
{ 
    $output['fname' . $i] = $member['fname']; 
    $output['lname' . $i] = $member['lname']; 
    $i++; 
} 

extract($output); 

雖然......爲什麼?

+0

快照... +1在我之前使用'extract'發佈+1 –

+0

@bigman我的主要目標是將所有信息存儲在稍後可以檢索的$ _SESSION變量中。說有7個新的「聯繫人」添加,我想循環訪問數據,並將每個值存儲到$ _SESSION變量 – three3

+0

因此,將$輸出更改爲$ _SESSION ..這是baddd實踐的人。至少將$輸出存儲到會話中,然後確切地說..但是,我會找到一個更好的方法來解決這個問題。 – wesside