2

年を含む親配列があります 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2005

一方、年とカウントを返すデータベースから結果を取得しています。今、私がやろうとしているのは、次のような結果が生成されるように、親配列 (年) ごとに配列が取り込まれていることです。

SQL によって生成される結果
+----------------+
 年 | 年 | カウント
 1994年 | 16
 1995年 | 16
 1996年 | 16
+----------------+

配列は、SQLクエリの結果に親配列の年の結果が含まれているかどうかのチェックに従って、次の値を格納する必要があります

1994年 | 16
1995年 | 16
1996年 | 16
1997年 | 0
1998年 | 0
1999年 | 0
2000年 | 0
2005年 | 0

ありがとう、注:これらの値をハイチャートに渡す必要があるため(グラフを生成するため)、上記のように reuslt を配列で生成したい

4

1 に答える 1

2

ビルド方法によって異なります$years_db. ここに例を示します:

$years       = array(1994, 1995, 1996, 1997, 1998, 1999, 2000, 2005);
$years_db    = array(1994 => 16, 1995 => 16, 1996 => 16);

$array_temp = array();
foreach ($years as $year)
{
    /* if (in_array($year, array_keys($years_db)))
     * $array_temp[$year] = $years_db[$year];
     * else
     * $array_temp[$year] = 0;
     */

    // @gumbo suggestion is more efficient. THX!
    $array_temp[$year] = isset($years_db[$year]) ? $years_db[$year] : 0;
}

output of $array_temp:
array (
  1994 => 16,
  1995 => 16,
  1996 => 16,
  1997 => 0,
  1998 => 0,
  1999 => 0,
  2000 => 0,
  2005 => 0,
)
于 2012-12-30T13:10:21.273 に答える