/ / Використання значення масиву для отримання з іншого масиву - php, масиви, бази даних, багатовимірний масив

Використання значення масиву для отримання з іншого масиву - php, масивів, бази даних, багатовимірного масиву

Я створив масив, один з яких призначений для рядка, який використовується php для відображення поля з запису, отриманого з sqlite3.

Моя проблема полягає в тому, що ... це не так.

Масив визначається, "1" є першим полем бази даних, а "2" - другим полем бази даних:

EDIT: Я перевизначив проблему як сценарій, щоб ви могли побачити все:

//If I have an array (simulating a record retrieved from database):
$record = array(
name => "Joe",
comments => "Good Bloke",
);

//then I define an array to reference it:
$fields = array(
1 => array(
"db_index" => "name",
"db_type" => "TEXT",
"display" => "$record["name"]",
"form_label" => "Name",
),
2 => array(
"db_index" => "comments",
"db_type" => "TEXT",
"display" => "$record["comments"]",
"form_label" => "Comments",
),
);

//If I use the lines:
print "expected output:n";
print " Name = " . $record["name"] ."n";
print " Comments = " . $record["comments"] ."n";

//I display the results from the $record array correctly.
//However if I try & use the fields array with something like:
Print "Output using Array valuesn";
foreach($GLOBALS["fields"] as $field)
{
$label = $field["form_label"];
$it = $field["display"];
$line = ""$label = " . $it ."n"";
print $line;
}

Вихід:

Expected output:
Name = Joe
Comments = Good Bloke
Output using Array values:
Name = $record["name"]
Comments = $record["comments"]

Відповіді:

0 для відповіді № 1

Не викликайте змінну з рядка. Просто об'єднайте її:

foreach($GLOBALS["fields"] as $field){
$label = $field["form_label"];
$it = $field["display"];

eval("$it = ".$it);
$line = $label." = ".$it."n";
print $line;
}

Ну, як це виглядає?