aronccs
aronccs

Reputation: 294

PHP add to variable name

Is it possible to add or concatenate something into a variable name in a PHP variable? For example:

for($g = 7; $g <= 10; $g++){
    for($i = 0; $i <= 4; $i++){
        $counter = $g - 7;
        if($i != $counter){
            continue;
        } else {
            $grade.[$g] = $grades[$i];
        }
    }
}

I want this to happen:

$grade7 = 0
$grade8 = 1
$grade9 = 2
$grade10 = 3

Upvotes: 1

Views: 140

Answers (4)

Murad Hasan
Murad Hasan

Reputation: 9583

Concatenates the $g with grade and make this value a variable by adding a $ sign at the starting line...

The example given below:

for($g = 7; $g <= 10; $g++){
    for($i = 0; $i <= 4; $i++){
        $counter = $g - 7;
        if($i != $counter){
            continue;
        } else {
            ${"grade".$g} = $grades[$i];
        }
    }
}

echo $grade7; // 0
echo $grade8; // 1
echo $grade9; // 2
echo $grade10;// 3

Upvotes: 1

Mihai Matei
Mihai Matei

Reputation: 24276

One solution would be to create the variables dynamically:

for ($g = 7; $g <= 10; $g++) {
    for ($i = 0; $i <= 4; $i++) {
        $counter = $g - 7;
        if ($i == $counter) {
            ${'grade' . $g} = $grades[$i];
        }
    }
}

Upvotes: 1

HuntsMan
HuntsMan

Reputation: 792

 $data = new Array();
 for($g = 7; $g <= 10; $g++){
        for($i = 0; $i <= 4; $i++){
            $counter = $g - 7;
            if($i != $counter){
                continue;
            } else {
                $data[$grade.[$g]] = $grades[$i]);
            }
        }
    }

Upvotes: 0

OverSu
OverSu

Reputation: 110

You should use ARRAY instead of your method. :)

Try to look at variable named like "$$".

EDIT: Maybe something like

var $array = array();
for($g=7; $g<=10; $g++)
{
    for($i=0; $i<=4; $i++)
    {
        $counter = $g - 7;
        if($i != $counter) continue;
        else $array[$grade.[$g]] = $grades[$i];
    }
}

Upvotes: 0

Related Questions