Search code examples
phparraysfilterhigher-order-functions

How to filter an array by a condition


I have an array like this:

array("a" => 2, "b" => 4, "c" => 2, "d" => 5, "e" => 6, "f" => 2)

Now I want to filter that array by some condition and only keep the elements where the value is equal to 2 and delete all elements where the value is NOT 2.

So my expected result array would be:

array("a" => 2, "c" => 2, "f" => 2)

Note: I want to keep the keys from the original array.

How can I do that with PHP? Any built-in functions?


Solution

  • $fullArray = array('a'=>2,'b'=>4,'c'=>2,'d'=>5,'e'=>6,'f'=>2);
    
    $filteredArray = array_filter($fullArray, fn ($value) => $value === 2);
    
    foreach($filteredArray as $k => $v){
        echo "$k = $v";
    }