変数に変換したい名前の配列があります。これらはデータベースから生成されたテストの名前です(新しいテストが追加された場合、新しいインデックスが配列に追加されます)、私たちのテストは定期的に更新されるので、変数をハードコードしたくないそれらを動的に生成したいデータベースから動的PHP変数を作成する
私はこのコードを試してみた:
私の目的は、動的変数を作成し、6人のいずれかを持っていた場合、例えば、取られて、テストの各インスタンスのためにそれらに追加することです$data = array();
foreach($tests as $v) {
$$v = ${};
array_push($data, $v);
}
私たちのインスタントテストでは、変数 'instant'の値は6になります。ありがとう!
***** ***** UPDATE イムハードコーディングされたので、同じよう際にすべての作品、これらの変数を使用してmorris.jsチャートを移入しようとしている:これは私を与える
$pos = 0;
$neg = 0;
$pen = 0;
$cont = 0;
$misc = 0;
foreach ($data as $item) {
if ($item['result'] === 'Positive') {
$pos++;
} elseif ($item['result'] === 'Negative') {
$neg++;
} elseif ($item['result'] === 'Pending') {
$pen++;
} elseif ($item['result'] === 'Contact the Clinic') {
$cont++;
} else {
$misc++;
}
}
$res = array("Positive"=>$pos, "Negative"=>$neg, "Pending"=>$pen, "Contact the Clinic"=>$cont, "Misc"=>$misc);
$data = json_encode($res);
私は新しいテスト/結果セットが追加された場合、コードを手動で更新する必要はありませんので、データベースから動的にデータを取り込もうとしています。データに基づいて変数を動的に作成する方法: /*作成するynamic変数は、:*/
$vars = array();
foreach($tests as $k => $v) {
array_push($vars, $v);
$$v = extract($vars);
/* Loop through each instance and create a count for all matching instances */
foreach($data as $item){
if($item['name'] === $k){
${$v}++;
}
}
}
は私にラベルを与えすぎない値を持たない:
{"Positive","Negative","Pending","Contact the Clinic","Misc"}
イムあなたはmysqliのを使用している場合、現在
これは実際のコードですか、それとも疑似コードですか? – Script47
これは私が試したコードです。これまでのところ、多くの変数が手作業でコード化されています。 – Sam
これらの変数は別に必要ですか。連想配列( '$ data [$ v] = x;')だけでは使えませんか? –