2012-03-20 7 views
1

私は変更できないテーブルからのint型のUNIX時刻を表す配列を持っています。いくつかの行は完全なUNIXタイムスタンプではありませんが、いくつかの整数ではありません。これはテーブルにある理由ですが、私のスクリプトでは、10桁以外の行を "0"に、10桁を日付( "Ymd"、?)形式に変更する文字列が必要です。日付の形式が正しくフォーマットされ配列を調整しているときにループロジックが間違っています

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] => 19700101 
    [13] => 0 
    [14] => 0 
    [15] => 0 
    [16] => 19700817 
    [17] => 0 
    [18] => 19700101 
) 

注意:これは、ループ後の結果が

$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++){ 
} 

です:これはスクリプトである

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 
) 

:ここでは配列$ quclsの例を示します。それがstrlen <である第1の整数に達するまで続けます。その時点で、10未満の長さの整数を「0」に変更します。これは正しいですが、その後の日付は失効します。それは< 10桁のものを0に正しく変更し続けます。

誰かがこのループで何が間違っているのか理解できますか?私はELSEが始動した1970年代のすべての日々で正しい結果を得ていません。私はまだこれで新しいです。

ありがとうございます。

答えて

1

<?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 
) 
+0

高速答えと私のために学ぶのは良いを取得します。ありがとうneeraj! – defacto7

関連する問題