LoginSignup
2
2

More than 5 years have passed since last update.

【PHP】foreach内で変数名にループ回数を加えて可変変数にする

Posted at

前書き

商品予約サイトを想定して、ユーザーが選択した複数の商品情報を配列で持ち、そのデータを処理する際に可変変数に商品情報を代入したいと考えました。

POSTされた配列を可変変数に代入

$_POST['item']の中身を$itemループ回数を組み合わせた名前の変数に代入します。

$_POST['item']のデータ例

$_POST['item']には、ユーザーが選択した商品のID(アルファベット+4桁の数字)が格納されているとします。

var_dump($_POST['item'])で配列の中身を確認します。

array(4) { [0]=> string(5) "S1001" [1]=> string(5) "S1035" [2]=> string(5) "S1056" [3]=> string(5) "S1203" } 

foreachで配列を変数に代入

${'変数名'.ループ回数}で、可変変数を生成します。

$i = 0;

foreach($_POST['item'] as $key => $value){
    ${'select_item'.$i} = $value;
    $i++;
}

変数の確認

echo $select_item1;

 S1001  //結果

echo $select_item2;

 S1035  //結果

echo $select_item3;

 S1056 //結果

echo $select_item4;

 S1203 //結果

後書き

$select_itemのそれぞれの変数を使う際には$select_itemが何個生成されているのかをチェックしなければ使えないのではと思いました。
他にもっと良いやり方がありそうです。

2
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2