Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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中使用array_unique后如何在js中循环数组_Javascript_Php - Fatal编程技术网

Javascript 在php中使用array_unique后如何在js中循环数组

Javascript 在php中使用array_unique后如何在js中循环数组,javascript,php,Javascript,Php,今天我遇到了这个: $test = array('red', 'red', 'green', 'red', 'green', 'blue', 'blue', 'red', 'blue'); $test = array_unique($test); 将返回: Array ( [0] => red [2] => green [5] => blue ) 这是通过$ajax\u result['results']=$test传递给js脚本的。既然array_

今天我遇到了这个:

$test = array('red', 'red', 'green', 'red', 'green', 'blue', 'blue', 'red', 'blue');
$test = array_unique($test);
将返回:

Array
(
    [0] => red
    [2] => green
    [5] => blue
)
这是通过
$ajax\u result['results']=$test
传递给js脚本的。既然array_unique保留了键,那么如何在js中执行foreach循环呢

for(var i = 0; i < response.results.length; i++)
{
    //do something
}
for(var i=0;i

它们的键不再是0,1,2,3*长度,但0,2,5,因为它们是保留的。

如果您不必支持IE8并且希望保留这些密钥:

var response = {results: {0: 'red', 2: 'green', 5: 'blue'}};
Object.keys(response.results).forEach(function(key) {
  console.log(key, response.results[key]);
});
$test = array('red', 'red', 'green', 'red', 'green', 'blue', 'blue', 'red', 'blue');
$test = array_values(array_unique($test));
产出:

0 red
2 green
5 blue

如果不希望保留密钥,请执行以下操作:

var response = {results: {0: 'red', 2: 'green', 5: 'blue'}};
Object.keys(response.results).forEach(function(key) {
  console.log(key, response.results[key]);
});
$test = array('red', 'red', 'green', 'red', 'green', 'blue', 'blue', 'red', 'blue');
$test = array_values(array_unique($test));
只用

for (var i in response.results) {
    alert(response.results[i]);
}
假设您有一个对象:

var obj = { 0:"zero", 1:"one" };

for (var i in obj) {
    alert(obj[i]);
}

简单点:只需在PHP中对生成的数组使用
array\u values()
,即可重置键。