Php数组 - 丢失了一些值

时间:2015-05-13 13:19:11

标签: php arrays

我尝试将一些值插入数组中,但我不知道为什么我丢失了一些值

这是我现在正在使用的代码:

site.eu/folder1/file1/?lang=cs

输出:     

site.cz/folder1/file1/
我从数组中丢失了一些值:     
 <pre><code>
<?php
include 'config/connections.php';
$SQL = "SELECT * FROM table"; 
$result = $db->query($SQL) or die("Couldn't execute 
query.".mysqli_error($db)); 
$numresult=$result->num_rows;
for ($i=0; $i<$numresult; $i++)
{
    $row = $result->fetch_assoc();  
    $c['id']   = 'H'.$i;
    $c['start']= date("Y-m-d");
    $a[$i]   = $c;
    for ($j=1; $j<4; $j++)
    {
        $c['id']   = 'H'.$i;
        $c['start']= date('Y-m-d', strtotime("+".$j." days"));
       array_push($a,$c);
    }
}
echo json_encode($a);
?>
</pre></code>
非常感谢在这方面的任何帮助!谢谢!

1 个答案:

答案 0 :(得分:2)

在第一次循环迭代中,创建$a[0],然后第二次循环迭代,为$a数组添加3个元素,从而创建$a[1]$a[4]。< / p>

在第二个外部迭代中,$a[1]被覆盖,内部用于将$a[5]添加到$a[7]

迭代的第三个外部覆盖$a[2],依此类推。

你可以这样做你想做的事:

<?php
include 'config/connections.php';
$SQL = "SELECT * FROM table"; 
$result = $db->query($SQL) or die("Couldn't execute query.".mysqli_error($db)); 
$numresult=$result->num_rows;
$a = array();
for ($i=0; $i<$numresult; $i++)
{
    $row = $result->fetch_assoc();  
    for ($j=0; $j<4; $j++)
    {
        $c['id']   = 'H'.$i;
        $c['start']= date('Y-m-d', strtotime("+".$j." days"));
       array_push($a,$c);
    }
}
echo json_encode($a);
?>