选择变量并存储到多维数组中

时间:2012-07-16 09:49:29

标签: php arrays

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

例如。

$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 个答案:

答案 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'
    )   
);