0

以下は私の配列のサンプルです。user_id が配列に含まれるたびにカウントしようとしています。user_id が配列に含まれるたびにカウントしようとしています。

Array
(
[0] => Array
    (
        [user_id] => 57002892
        [page_id] => 109446562415595
    )

[1] => Array
    (
        [user_id] => 515576073
        [page_id] => 109446562415595
    )

[2] => Array
    (
        [user_id] => 560299932
        [page_id] => 109446562415595
    )

[3] => Array
    (
        [user_id] => 607960053
        [page_id] => 109446562415595
    )

[4] => Array
    (
        [user_id] => 607960053
        [page_id] => 109446562415595
    )
)

これにより、次のように出力されます。

Array
(
[0] => Array
    (
        [user_id] => 57002892
        [count] => 1
    )

[1] => Array
    (
        [user_id] => 515576073
        [count] => 1
    )

[2] => Array
    (
        [user_id] => 560299932
        [count] => 1
    )

[3] => Array
    (
        [user_id] => 607960053
        [count] => 2
    )
)

これは可能ですか?

4

1 に答える 1

0

以下のコードでは、入力例を$input_arrayとします。

$user_id_hash = array();
foreach( $input_array as $occur )
{
    if( !array_key_exists( $occur['user_id'], $user_id_hash ) )
    {
        $user_id_hash[$occur['user_id']] = 0;
    }
    $user_id_hash[$occur['user_id']]++;
}
$user_id_arr = array();
foreach( $user_id_hash as $user_id => $count )
{
    $user_id_arr[] = array( 'user_id' => $user_id, 'count' => $count );
}

連想配列に問題がない場合は、2番目のループを削除できます。

于 2013-03-11T03:50:29.640 に答える