count how many duplicate keys are in array of objects?

You can use array_reduce

$arr="[{"playerId":3207,"playerName":"RyanGarbutt","playerPos":"C","playerApiId":"5079"},{"playerId":3238,"playerName":"Max Domi","playerPos":"C","playerApiId":"5412"},{"playerId":3240,"playerName":"AnthonyDuclair","playerPos":"LW","playerApiId":"5441"}]";
$arr = json_decode( $arr, true );

$result = array_reduce( $arr , function( $c, $v ) {
    isset( $c[ $v[ "playerPos" ] ] ) ? $c[ $v[ "playerPos" ] ]++ : $c[ $v[ "playerPos" ] ] = 1;
    return $c;
}, array() );


echo "<pre>";
print_r( $result );
echo "</pre>";

This will result to:

Array
(
    [C] => 2
    [LW] => 1
)

Doc: http://php.net/manual/en/function.array-reduce.php

Browse More Popular Posts

Leave a Comment