Php 调整阵列时循环逻辑出错

Php 调整阵列时循环逻辑出错,php,mysql,arrays,loops,foreach,Php,Mysql,Arrays,Loops,Foreach,我有一个数组,它从一个我无法更改的表中以int类型表示UNIX时间。有些行不是完整的UNIX时间戳,但短了几个整数。在表中这样做是有原因的,但对于我的脚本,我需要字符串将非10位数的行更改为“0”,将10位数的行更改为日期(“Ymd”),形式。下面是数组$qucls的一个示例: Array ( [0] => 1332594303 [1] => 1330960502 [2] => 1331227649 [3] => 1331305503

我有一个数组,它从一个我无法更改的表中以int类型表示UNIX时间。有些行不是完整的UNIX时间戳,但短了几个整数。在表中这样做是有原因的,但对于我的脚本,我需要字符串将非10位数的行更改为“0”,将10位数的行更改为日期(“Ymd”),形式。下面是数组$qucls的一个示例:

Array
(
    [0] => 1332594303
    [1] => 1330960502
    [2] => 1331227649
    [3] => 1331305503
    [4] => 1332594303
    [5] => 1331147102
    [6] => 1332680702
    [7] => 1331301902
    [8] => 1331048163
    [9] => 1332248704
    [10] => 1332421503
    [11] => 31536000
    [12] => 1331816703
    [13] => 604800
    [14] => 0
    [15] => 31536000
    [16] => 1332248703
    [17] => 31536000
    [18] => 1361922903
)
以下是脚本:

$k=0
$l=0
foreach ($qucls as $dt[$k]){
    if (strlen($dt[$k]) < 10)
      $dt[$k++] = '0';
    else {$dt[$k++] = date("Ymd", $dt[$l++]);
 }
}
for ($l=0; $l < $k; $l++){
}
请注意,日期表单的格式正确,直到它达到strlen<10的第一个整数。在这一点上,它将长度小于10的整数更改为“0”,这是正确的,但之后的日期是错误的。它将继续将<10位数字正确更改为0

有人能帮我找出这个循环中的错误吗?我没有得到正确的结果与所有这些1970年的日期后,其他踢进来。我还是个新手

谢谢。

使用下面的脚本

<?php
$qucls = array(
    0 => 1332594303,
    1 => 1330960502,
    2 => 1331227649,
    3 => 1331305503,
    4 => 1332594303,
    5 => 1331147102,
    6=> 1332680702,
    7=> 1331301902,
    8=> 1331048163,
    9=> 1332248704,
    10 => 1332421503,
    11 => 31536000,
    12 => 1331816703,
    13 => 604800,
    14 => 0,
    15 => 31536000,
    16 => 1332248703,
    17 => 31536000,
    18 => 1361922903
    );

foreach ($qucls as $key=>$value){
    if (strlen($value)< 10){
        $dt[] = 0;
    }else{
        $dt[] = date("Ymd", $value);
    }
 }
echo "<pre>";
print_r($array);
print_r($dt);
exit;
?>
使用下面的脚本

<?php
$qucls = array(
    0 => 1332594303,
    1 => 1330960502,
    2 => 1331227649,
    3 => 1331305503,
    4 => 1332594303,
    5 => 1331147102,
    6=> 1332680702,
    7=> 1331301902,
    8=> 1331048163,
    9=> 1332248704,
    10 => 1332421503,
    11 => 31536000,
    12 => 1331816703,
    13 => 604800,
    14 => 0,
    15 => 31536000,
    16 => 1332248703,
    17 => 31536000,
    18 => 1361922903
    );

foreach ($qucls as $key=>$value){
    if (strlen($value)< 10){
        $dt[] = 0;
    }else{
        $dt[] = date("Ymd", $value);
    }
 }
echo "<pre>";
print_r($array);
print_r($dt);
exit;
?>
Array
(
    [0] => 20120324
    [1] => 20120305
    [2] => 20120308
    [3] => 20120309
    [4] => 20120324
    [5] => 20120307
    [6] => 20120325
    [7] => 20120309
    [8] => 20120306
    [9] => 20120320
    [10] => 20120322
    [11] => 0
    [12] => 20120315
    [13] => 0
    [14] => 0
    [15] => 0
    [16] => 20120320
    [17] => 0
    [18] => 20130226
)