我理解多维数组是如何工作的,但我是新手。
例如。
$arrayAns = array( subject => "he"),
array( subject => "I"),
array( subject => "they");
我要做的是,从数据库中获取一个变量并将其存储在数组中。
$query = "SELECT subject FROM #__wordBank ORDER BY RAND() LIMIT 1";
$db->setQuery($query);
$rows=$db->loadObjectList();
$arrayAns = array( subject => "$rows")
是这样做的吗?
答案 0 :(得分:0)
试试这个:
如果数据库的结果存储在rows
:
$newArray = array();
foreach($rows as $key=>$value) {
$newArray[] = $value;
}
此处,$value
中的所有变量都会存储到newArray
。
另请参阅array_push
答案 1 :(得分:0)
将语法更改为这样(您还有some syntax errors) -
// original multidimensional array
$arrayAns = array(
array( "subject" => "he"),
array( "subject" => "I"),
array( "subject" => "they")
);
// execute query
$query = "SELECT subject FROM #__wordBank ORDER BY RAND() LIMIT 1";
$db->setQuery($query);
$rows=$db->loadObjectList();
现在我们要做的是在原始数组中添加另一个元素。您可以使用简写[]
语法将另一个元素推送到数组的顶部。
$arrayAns[] = array('subject'=> $rows['subject']);
该行在功能上与此相同 -
array_push($arrayAns, array('subject'=> $rows['subject']));
答案 2 :(得分:0)
几乎!但不完全
我将如何解决这个问题:
$arrayAns = array(
array('subject' => "he"),
array('subject' => "I"),
array('subject' => "they")
);
$query = "SELECT subject FROM #__wordBank ORDER BY RAND() LIMIT 1";
$db->setQuery($query);
$rows=$db->loadObjectList();
$arrayAns[] = array('subject' => $rows);
答案 3 :(得分:0)
根据您使用的DB API,您可以选择自动将数据检索为多维数组。检查$ rows-> toArray()是否可行或类似。
否则不是最优,但简单而干净的方法是通过你的$ rows列表来构建你想要的数组。
顺便说一句,您在顶部定义的数组在PHP中定义如下:
$myArray = array(
array(
'subject' => 'he'
),
array(
'subject' => 'I'
),
array(
'subject' => 'they'
)
);