从数据库向php关联数组添加键值对

时间:2014-01-16 04:13:30

标签: php arrays

DB设置如下:

enter image description here

include 'php/DbConnect.php';
$sql = $mysqli->query(
 "SELECT t.*, v.* 
 FROM task t 
 INNER JOIN vocabtask vt ON (t.id = vt.taskid)
 INNER JOIN vocab v ON (v.id = vt.vocabid)
 WHERE vt.taskid = 1");
$wordsArray = array();  


while ($row = $sql->fetch_assoc()) {

   // echo "<br> " . $row['taskname'] . ": ".  $row['chinese'] . " : " . $row['english'];
    $wordsArray['chinese']['english'] = $row['chinese'];
    echo $wordsArray['chinese']['english'];
}
mysqli_close($mysqli);  

输出:Ni Ta Wo

所需的输出:Ni: You Ta: Him Wo: I

我希望将中文单词(键)和相关的英文翻译(值)加载到wordsArray中,但不知道加载和访问的正确语法。

由于

2 个答案:

答案 0 :(得分:1)

也许你想要这个?它映射一个方向,中文到英文,但据我所知,并没有一个非常好的方法来进行双向映射。 (通常我使用两个映射来执行此操作。)编辑:根据您的编辑,这似乎是您想要的方向。

$wordsArray = array();
while ($row = $sql->fetch_assoc()) {
    $wordsArray[$row['chinese']] = $row['english'];
}
mysqli_close($mysqli);  
var_dump($wordArray);

答案 1 :(得分:0)

$json = array();
foreach (...) {
    $json[$row['chinese']] = $row['english']
}

$return_result = json_encode($json);

echo $return_result;

您可以使用jQuery获取该返回值,并使用jQuery.parseJSON()将其解析为带有/不带ajax的jSON。

更新,如果您不想使用ajax解析数据,只需将结果添加到script标记内的页面,如

<script type="text/javascript">
(function($){
    var data = '<?php echo $return_result; ?>';
    var json = $.parseJSON(data);
    console.log(json);
})(jQuery);
</script>