Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中php内爆的异常行为_Javascript_Php_Arrays - Fatal编程技术网

javascript中php内爆的异常行为

javascript中php内爆的异常行为,javascript,php,arrays,Javascript,Php,Arrays,我一直在使用PHP从数据库中获取值并将它们存储在一个数组中,当我在PHP中使用implode回显代码时,它工作得非常好(对于数据数组中的单个值和多个值) PHP代码供参考 现在, 我想把这个值赋给javascript数组- <script> js_array = new Array(<?php echo implode(',', $data_Sad);?>); js_array1 = new Array(<?php echo implode(',', $d

我一直在使用PHP从数据库中获取值并将它们存储在一个数组中,当我在PHP中使用implode回显代码时,它工作得非常好(对于数据数组中的单个值和多个值)

PHP代码供参考 现在,

我想把这个值赋给javascript数组-

<script>    
js_array = new Array(<?php echo implode(',', $data_Sad);?>);
js_array1  = new Array(<?php echo implode(',', $data_Like); ?>);

alert(js_array);
alert(js_array1);
</script>

js_数组=新数组();
js_array1=新数组();
警报(js_阵列);
警报(js_阵列1);
现在,当我在js_数组只有一个值时向它发出警报时,它只返回/警报一个空数组字符串。而当我填充2个或更多值时,它工作得非常好

另外,如果我使用json_encode,那么它可以正常工作,但它也是一个字符串格式的输出,我需要的只是int/number值

有谁能帮我解决这个问题,使用PHP的内爆或任何其他解决方法吗?
期待中的感谢:)

试着运行下面的代码,您就会明白问题所在

<?php

$data_Sad= array();
$data_Like = array();

$data_Sad[] = 3;
$data_Sad[] = 4;
//$data_Sad[] = 3;
$data_Like[] = 3;
$data_Like[] = 5;
//$data_Like[] = 3;
echo "<pre>";print_r($data_Sad);print_r($data_Like);echo "</pre>";
?>
<script>    
js_array = new Array(<?php echo implode(',', $data_Sad);?>);
js_array1  = new Array(<?php echo implode(',', $data_Like); ?>);

alert(js_array);
alert(js_array1);
</script>

js_数组=新数组();
js_array1=新数组();
警报(js_阵列);
警报(js_阵列1);
当PHP数组有一个数值时,它将作为数组初始化

要避免此类问题,请使用以下代码

$data_Sad= array();
$data_Like = array();

$data_Sad[] = 3;
$data_Like[] = 3;

js_数组=新数组();
js_array1=新数组();
警报(js_阵列);
警报(js_阵列1);

当您使用单个整数元素构造数组时,它将创建一个该大小的数组,而不是使用该元素创建数组


您应该改变在php中使用json_编码的方法。它将确保数组被正确地转换为可用的JavaScript对象,并且可以处理更复杂的数组,包括关联数组

在向模板回显数据时,也可以使用php短标记。e、 g

现在,

我想将该值分配给javascript数组。我所做的就是-

<script>    
js_array = new Array(<?php echo implode(',', $data_Sad);?>);
js_array1  = new Array(<?php echo implode(',', $data_Like); ?>);

alert(js_array);
alert(js_array1);
</script>

js_数组=;
js_阵列1=;
警报(JSON.stringify(js_数组));
警报(JSON.stringify(js_array1));

您是否尝试过使用引号?
$data_Sad= array();
$data_Like = array();

$data_Sad[] = 3;
$data_Like[] = 3;
<script>    
js_array = <?=json_encode($data_Sad)?>;
js_array1 = <?=json_encode($data_Like)?>;

alert(JSON.stringify(js_array));
alert(JSON.stringify(js_array1));
</script>