Search code examples
phparraysfilteringpass-by-referencearray-filter

Why is array_filter() not modifying the input array by reference like sort() does?


Sorry but why can't this work:

function filter($var) {
    return($var['id'] < 4);
}

$t1 = array(
array("key"=>"date", "value"=>"effe", "id"=>2),
array("key"=>"date2", "value"=>"jieffe", "id"=>3),
array("key"=>"date3", "value"=>"efjife", "id"=>4),
array("key"=>"date4", "value"=>"effijoe", "id"=>5),

);

array_filter($t1, "filter");

var_dump($t1);

tested on http://writecodeonline.com/php/


Solution

  • array_filter() returns the filtered array, it's not pass by reference:

    $t1 = array_filter($t1, "filter");
    
    var_dump($t1);// done