Php 选择变量并存储到多维数组中
我知道多维数组是如何工作的,但我对它还不熟悉 例如 我试图做的是,从数据库中获取一个变量并将其存储在数组中Php 选择变量并存储到多维数组中,php,arrays,Php,Arrays,我知道多维数组是如何工作的,但我对它还不熟悉 例如 我试图做的是,从数据库中获取一个变量并将其存储在数组中 $query = "SELECT subject FROM #__wordBank ORDER BY RAND() LIMIT 1"; $db->setQuery($query); $rows=$db->loadObjectList(); $arrayAns = array( subject => "$rows") $arrayAns[
$query = "SELECT subject FROM #__wordBank ORDER BY RAND() LIMIT 1";
$db->setQuery($query);
$rows=$db->loadObjectList();
$arrayAns = array( subject => "$rows")
$arrayAns[] = array('subject'=> $rows['subject']);
这样做吗?试试这个:
如果来自数据库的结果存储在行中:
在这里,$value中的所有变量都将存储到newArray中
另外,请参见更改语法,使其看起来像您还拥有的- 现在我们要做的是向原始数组中添加另一个元素。您可以使用缩写[]语法将另一个元素推送到数组的顶部
$query = "SELECT subject FROM #__wordBank ORDER BY RAND() LIMIT 1";
$db->setQuery($query);
$rows=$db->loadObjectList();
$arrayAns = array( subject => "$rows")
$arrayAns[] = array('subject'=> $rows['subject']);
这条线在功能上与这条线相同——
array_push($arrayAns, array('subject'=> $rows['subject']));
差不多了!但不完全如此
以下是我将如何处理这件事:
$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);
根据您使用的DB API,您可以选择自动将数据检索为多维数组。检查是否可以使用$rows->toArray或类似的方法 否则,不是最理想的,但简单而干净的方法是通过您的$rows列表foreach并构建您想要的数组 顺便说一句,您在上面定义的数组在PHP中的定义如下:
$myArray = array(
array(
'subject' => 'he'
),
array(
'subject' => 'I'
),
array(
'subject' => 'they'
)
);
您发布的代码中有语法错误。。。您在$arrayAns的最后一个元素中遗漏了a。此外,多维数组的语法也有轻微缺陷。。。我将假设在发布问题时这是一个错误,并且您的实际代码与此不完全相同……OP在其查询中指定了限制1,并且仅选择了一个字段。我不相信$rows会有超过一个元素本身。。。此处不需要foreach…取决于loadObjectList返回的内容$行本身可能只是一个关联数组-将它像那样推到数组上不会获得OP指定的相同格式…我想你会发现它与原始格式Hi guys thx完全相同,以帮助我,只是为了检查我的理解。如果我需要选择多个,我可以这样做:$query=selectsubject FROM\uuuu wordBank ORDER BY RAND LIMIT 1$db->setQuery$query$行1=$db->loadObjectList$query=按RAND LIMIT 1从uuu wordBank ORDER中选择动词$db->setQuery$query$rows2=$db->loadObjectList$arrayAns[]=数组'subject'=>$rows1['subject']$arrayAns[]=array'verb'=>$rows2['verb'];真的吗?是的,基本上这是可行的。虽然我很确定你可以优化它,不必进行多个查询。如果没有更多的细节,就很难确定。。。
$myArray = array(
array(
'subject' => 'he'
),
array(
'subject' => 'I'
),
array(
'subject' => 'they'
)
);