gpt4 book ai didi

php - 为什么我的数组没有用双引号将每个单词括起来?

转载 作者:行者123 更新时间:2023-12-01 04:38:18 25 4
gpt4 key购买 nike

我有以下 PHP 代码,它返回一个数组 $words,其中包含 MySql 数据库中 SimplifyingFractionsQuestions 列中的所有单词:

<?php
$data5 = $db->query("SELECT GROUP_CONCAT(DISTINCT SimplifyingFractionsQuestions ORDER BY rand()) as SimplifyingFractionsQuestions FROM (SELECT SimplifyingFractionsQuestions FROM answers WHERE user_id=$id AND SimplifyingFractionsQuestions LIKE 's%') AS SimplifyingFractionsQuestions ")->fetch_assoc();
$selector= $data5['SimplifyingFractionsQuestions'];
$words = explode(" ", $selector);
?>

此外,我还有以下 Jquery,它向该数组中找到的每个类添加一个具有唯一 CSS 属性的新类 ClassHide

<script type='text/javascript'>
$(document).ready(function () {

var arr = <?php echo json_encode($words); ?>;

jQuery.each( arr, function( i, val ) {
$( "." + val ).addClass("ClassHide");

});

});
</script>

但是,来源表明,这会返回:

var arr = ["Question 1, Question 2, Question 3"]

因此它只会将类 ClassHide 添加到类 Question 1、Question 2、Question 3

的 div 中

我需要它返回

var arr = ["Question 1", "Question 2", "Question 3"]

因此它将把类 ClassHide 添加到类为 Question 1Question 2Question 3 的 div 中>

最佳答案

编辑#2

在看到数据之前,我认为这就是问题所在,但似乎 json_encode() 完成这项工作 - 但我的评论仍然存在,Javascript 行应该仍然以分号终止。

<小时/>

json_encode() 不会这样做。你想做类似的事情

var arr = [<?php    // leading '[' starts the array definition
$sep='';
foreach ($words as $word)
{
echo $sep.'"'.$word.'"';
$sep=',';
} ?>]; // trailing ']' ends the array, don't forget the semicolon!

编辑#1

这一行

$words = explode(" ", $selector);

将尝试将 $selector 的内容分解为数组元素,并以空格 ("") 字符分隔字符串。由于 $selector 中没有任何空格,因此 $words 将与 $selector 完全相同,您需要 explode(',', $selector)

注意 您应该对静态字符串值使用单引号字符串,而不是双引号字符串,这样 PHP 解释器就不必解析内容的静态字符串。 (更快,更少的处理开销,更好......)

关于php - 为什么我的数组没有用双引号将每个单词括起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45250239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com