使用非顺序键时,阵列限制为1,001个键

时间:2015-07-24 14:16:31

标签: php arrays

我通过查询从数据库中提取两个ID。一个是表的唯一主键(temp_id),一个不是(auto_id)。查询给了我1,477条记录。

当我将这些添加到这样的数组中,然后var_dump()数组时,我得到完整的1,477:

<input type="checkbox" name="temp_id[]" value="<?=$auto_id?>">

但是,当我使用此代码时,突然该数组只包含1,001:

<input type="checkbox" name="temp_id[<?=$temp_id?>]" value="<?=$auto_id?>">

这有什么固有的原因吗?据我所知,因为$temp_id是唯一的,所以这不应该导致数据中的任何“冲突”或覆盖的密钥。

FORM CODE:

<?php
if (!isset($_GET['date']) || !filter_var($_GET['date'], FILTER_VALIDATE_INT)) {
    header("Location: ./");
    exit();
}
$date = $_GET['date'];
$upload_date = gmdate("Y-m-d H:i:s", $date);
require_once("db.php");

$automatch_query = mysql_query("SELECT temp_id, auto_id FROM advertisers INNER JOIN update_tempdata ON advertisers.advertiser_id = update_tempdata.auto_id WHERE auto_id > 0 AND upload_date = '$upload_date' ORDER BY advertiser_name");
?>
<form action="match-auto-script.php" method="post">
    <?php
    while ($automatch_data = mysql_fetch_assoc($automatch_query)) {
        extract($automatch_data);
        ?>
        <input class="toggleable" type="checkbox" name="temp_id[<?=$temp_id?>]" value="<?=$auto_id?>" checked>
        <?php
    }
    ?>
</form>

SCRIPT:

<pre><?php var_dump($_POST); ?></pre>

1 个答案:

答案 0 :(得分:0)

感谢@DCoder对其他主题中答案的链接,我使用以下解决方案:

<input type="checkbox" name="temp_id[][<?=$temp_id?>]" value="<?=$auto_id?>" checked>

这为我提供了所有1,477条记录作为拥有的数组,但至少我在每个唯一temp_id和非唯一auto_id之间都有重要的链接。