PHP数组长度始终为5

时间:2017-07-12 15:05:44

标签: javascript php arrays

我正在查询MS SQL Server并将结果存储在json数组中,然后将结果传递给Javascript。我的问题是基于如果变量isset,数组长度应该是4或5长度。但是,阵列始终显示长度为5。

这是我正在使用的php。

<?php
    $sql = "Select ";
    if (isset($_GET['namepull'])) {
        $sql .= "name,";
    }
    $sql .= " address, city, state, zip from employeefile";
    $db->setQuery($sql);
    $rows = $db->loadRowList();
    $output = array();
    foreach ($rows as $row) {
        array_push($output, $row);
    }
    echo $sql;
    $jsondata = json_encode($output[0]); 
?>

对我来说,下面的查询字符串应该显示数组长度 4 = Select address, city, state, zip from employeefile 5 = Select name, address, city, state, zip from employeefile

现在我遇到的问题是,无论查询是什么,总是会产生下面<script>长度为5的问题。我应该如何修改<script>以便返回准确的计数?

<script>
    var arrayfromphp = <?php echo $jsondata;  ?>;
    alert (arrayfromphp.length);
</script>

如果我执行console.log(arrayfromphp)计数应为4时的最后一个元素始终为undefined x 1

修改
如果我使用下面的var_dump是我得到的输出(这是我期望的)

Array ( [0] => XXXXXXXXX [1] => New York [2] => New York [3] => 33333 )
Array ( [0] => Jackie [1] => XXXXXXXXX [2] => New York [3] => New York [4] => 33333 )

再次编辑
似乎问题源于我如何从php数组填充Javascript数组。请参阅下面的编辑,上面有注释

var arrayfromphp = <?php echo $jsondata; ?>;
//Shows accurate count of 4
console.log(arrayfromphp);

var values = [];
if (arrayfromphp.length = 5) {
    for (var i = 1; i < arrayfromphp.length; i++) {
        values.push(arrayfromphp[i]);
    }
} else if (arrayfromphp.length = 4) {
    for (var i = 0; i < arrayfromphp.length; i++) {
        values.push(arrayfromphp[i]);
    }
}
//Shows 5
alert(arrayfromphp.length);
//Shows 5 with undefined x 1
console.log(arrayfromphp);

0 个答案:

没有答案