2

今週の訪問者を含む MySQL によって生成される配列を取得しました。

Array
    (
        [0] => Array
            (
                [iid] => 2
                [mid] => 123456
                [name] => Username  
                [date] => 2013-09-03 18:19:23
            )

        [1] => Array
            (
                [iid] => 2
                [mid] => 123456
                [name] => Username 
                [date] => 2013-09-03 18:19:20
            )

        [2] => Array
            (
                [iid] => 2
                [mid] => 123456
                [name] => Username  
                [date] => 2013-09-03 18:10:42
            )

    )

各キーは訪問者です。配列に含まれる訪問者の数を毎日カウントする必要があります。

この配列は次を返す必要があります。

Mon: 0    
Tue: 3
Wed: 0
etc
4

1 に答える 1

1

PHPで多次元配列をグループ化してグーグルでカウントを見つけることで学んだように、コードを変更しましたが、これで問題が解決するようです:

$inputArray  = array(
    array('iid' => 5, 'mid' => '123456', 'name' => 'Username', 'dd'  => '2013-09-03 18:19:23'),
    array('iid' => 5, 'mid' => '123456', 'name' => 'Username', 'dd'  => '2013-09-03 18:19:20'),
    array('iid' => 5, 'mid' => '123456', 'name' => 'Username', 'dd'  => '2013-09-03 18:10:42'),
    array('iid' => 5, 'mid' => '123456', 'name' => 'Username', 'dd'  => '2013-09-04 18:19:23'),
    array('iid' => 5, 'mid' => '123456', 'name' => 'Username', 'dd'  => '2013-09-04 18:19:23'));

$outputArray = array();

foreach ( $inputArray as $record ) {

    // get only the first part of the date string i.e. 2013-09-03
    $day = explode(' ', $record['dd']);

    // if the date has not already been added to the outputArray, add it
    if ( !key_exists($day[0], $outputArray) ) {
        $outputArray[$day[0]] = 0;
    }
    $outputArray[$day[0]] += 1;
}

echo '<pre>';
print_r($outputArray);

出力:

Array
(
    [2013-09-03] => 3
    [2013-09-04] => 2
)

ここにコピーして貼り付けることでテストできますhttp://writecodeonline.com/php/

于 2013-09-03T17:25:57.963 に答える