在javascript中迭代PHP数组,我在每个语句中都得到错误


Iterating through PHP array in javascript I get error in my each statement

我有一个php数组

$array = array(‘1234’=>”Acme Company”,
    “4321”=>”CustomerX”,
    ”1056=>”CustomerY”,
    ”1058”=>”google”,
    ”1059”=>”Yahoo”,
    ”1060”=>”apple”);

我正在尝试用这些数据创建一个自动完成。所以第一步是在javascript中迭代。

 var clients = '<?php echo json_encode($array);?>';
  $.each(clients, function(i,el){
            alert(i+","+el);
    });

当我这样做时,我得到错误:

Uncaught TypeError: Cannot use 'in' operator to search for '2847' in {“1234”:”Acme Company”,”4321”:”CustomerX,”1056”:”CustomerY”,”1058”:”google”,”1059”:”Yahoo”,”1060”:”Apple}

我不明白为什么。如果我是alert(clients),它看起来像一个很好的数组…

试试这样,你有错误传递php变量到你的js变量。现在它遍历了所有的数组元素

<?php
$array = ['1234'=>'Acme Company',
    '432'=>'CustomerX',
    '1056'=>'Customer',
    '1058'=>'google',
    '1059'=>'Yahoo',
    '106'=>'apple'];
    $array = json_encode($array);
    ?>
<script type="text/javascript">
    var clients = <?php echo $array; ?>;
    console.log(clients);
  $.each(clients, function(i,el){
            alert(i+","+el);
    });
    </script>

在每个(之前使用clients = $.parseJSON(clients);,并从数字中删除" '

var client_parsed = JSON.parse(client);

然后使用client_parsed