1

我了解多维数组的工作原理,但我是新手。

例如。

$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")

这是这样做的方法吗?

4

4 回答 4

0

根据您使用的 DB API,您可以选择自动将数据检索为多维数组。检查 $rows->toArray() 是否可能或类似的东西。

否则不是最佳的,但简单而干净的方法是遍历您的 $rows 列表并构建您想要的数组。

顺便说一句,您在顶部定义的数组在 PHP 中是这样定义的:

$myArray = array(
    array(
        'subject' => 'he'
    ),
    array(
        'subject' => 'I'
    ),
    array(
        'subject' => 'they'
    )   
);
于 2012-07-16T09:57:00.307 回答
0

试试这个:如果来自数据库的结果存储在rows

$newArray = array();
foreach($rows as $key=>$value) {
 $newArray[] = $value;
}

在这里,所有变量$value都将存储到newArray.

另请参阅array_push

于 2012-07-16T09:54:16.257 回答
0

改变你的语法看起来像这样(你也有一些语法错误) -

// 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']));
于 2012-07-16T09:54:43.433 回答
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);
于 2012-07-16T09:55:08.520 回答