How to get each common value from an array with PHP built in functions

Let's say you have a following array:

$array2 = array("b" => "2:12", "k" => "2:12", "yellow", "red");

and you want to output as:

Array
(
    [b] => 2:12
    [k] => 2:12
)


Then you can achieve it by implementing following code:

$new = array_diff( $array2, array_diff( $array2, array_diff_assoc( $array2, array_unique( $array2 ) ) ) );



We will see every function step by step.


array_unique( $array2 ); // It will give unique values

Array
(
    [b] => 2:12
    [0] => yellow
    [1] => red
)



array_diff_assoc( $array2, array_unique( $array2 ) ) // it will give diff by considering keys

Array
(
    [k] => 2:12
)



array_diff( $array2, array_diff_assoc( $array2, array_unique( $array2 ) ) ) // calculate difference by considering values only

Array
(
    [0] => yellow
    [1] => red
)

And at last,

array_diff( $array2, array_diff( $array2, array_diff_assoc( $array2, array_unique( $array2 ) ) ) ) // calculate difference by considering values only
Array
(
    [b] => 2:12
    [k] => 2:12
)



Comments