我试图加载中文单词作为键,并将它们的英文翻译作为数据库中的值加载到PHP数组中,然后我可以使用它们JavaScript中的客户端。因此,我将PHP key:value对加载到JavaScript数组中,并尝试输出结果。将数据库值加载到PHP中,然后加载到JavaScript数组中
数据库设置:
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()) {
$wordsArray[$row['chinese']] = $row['english'];
//echo key : value pair
echo "<br>".key($wordsArray) . ":" . $wordsArray[$row['chinese']];
}
var_dump($wordsArray);
mysqli_close($mysqli);
回声输出给Ni
关键的每个值,这是错误的:
Ni: You
Ni: Him or Her
Ni: I
的var_dump,但是,给人正确key:value
配对:
array (size=3)
'Ni' => string 'You' (length=3)
'Ta' => string 'Him or Her' (length=10)
'Wo' => string 'I' (length=1)
的JavaScript:
var words = [<?php echo '"'.implode('","', $wordsArray).'"' ?>];
$.each(words, function(key, value) {
console.log('stuff : ' + key + ", " + value);
});
CONSOLE.LOG给人号码键,而不是中国的钥匙:
stuff : 0, You
stuff : 1, Him or Her
stuff : 2, I
问:如果php
转储显示关键的合适配对(中国的词)来衡量(英文单词),为什么我得到这个不同的输出?
哈,奇怪的是key()不会随数组一起移动。所以要移动这个键,你可以使用data_seek,对吧?另外,你可以解释'json_encode'吗? – Growler
我认为你想要做的是回声添加到数组中的最后一个元素。我会这样做:'$ v = end($ array);回显键($ array)。 “:”。 $ V;'。 'end'将确保指针位于最后一个元素上。我已经更新了答案以进一步解释'json_encode'。这是否涵盖你所需要的? – anthonygore