2017-09-09 12 views
-1

こんにちは私はなぜ私のコードで$distのすべてのキーの戻り値を複製したのか分かりませんか?配列要素内のすべてのキーの重複した戻り値

PHP:

$dist = ['d1' => '0', 'd2' => '1', 'd3' => '2', 'd4' => '3', 'd5' => '4', 'd6' => '5', 'd7' => '6']; 

    $chart = array(); 
    foreach ($dist as $key => $value) { 

     $dis  = $value + 1; 
     $day  = time() - (24 * 60 * 60 * $value); 
     $pastday = time() - (24 * 60 * 60 * $dis); 

     $query = "SELECT COUNT(`user_id`) as '" . $key . "' FROM ".TBL_BANS." WHERE `banstart` >= '" . $pastday . "' AND `banstart` <= '" . $day . "' AND `pf_can_play_expire` >= '" . time() . "'";  

     $result = $this->dc->prepare($query); 
     $result->execute(); 
     $chart[] = $result->fetch(); 
    } 

    return $chart; 

結果:

[ 
    {"d1":"0","0":"0"}, 
    ... 
    {"d7":"0","0":"0"} 
] 

は次のようになります。

[ 
    {"d1":"0"}, 
    ... 
    {"d7":"0"} 
] 
+2

プリペアドステートメントを使用している場合は、バインド変数も使用してください –

答えて

0

これがPDOStatement::fetch()のデフォルトの動作です。ドキュメントから:は、結果セットに返された列名と0でインデックス付けされた列番号の両方でインデックスされた配列を返します。 $result->fetch(PDO::FETCH_ASSOC);を使用して、必要な配列を取得することができます。

関連する問題