fork download
  1. <?php
  2. function filter($array, $filter_elem) {
  3. return array_filter($array, function ($v) use($filter_elem) {
  4. return count(array_diff_assoc($filter_elem, $v)) == 0;
  5. });
  6. }
  7.  
  8. $array = array(
  9. '390' => array(
  10. '0' => 'hammer',
  11. '1' => 'Properties',
  12. '2' => 'tools, hammer, properties',
  13. '3' => false,
  14. '4' => 'done',
  15. 'png' => array(
  16. '0' => 'hammer_16x.png',
  17. '1' => 'hammer_32x.png',
  18. ),
  19. 'eps' => array(
  20. '0' => 'hammer_16x.eps',
  21. '1' => 'hammer_32x.eps',
  22. ),
  23. 'ico' => array(
  24. '0' => 'hammer.ico',
  25. ),
  26. ),
  27. );
  28.  
  29. $filter_elem = array(
  30. '1' => 'Properties',
  31. '2' => 'tools, hammer, properties',
  32. '3' => false,
  33. '4' => 'done',
  34. );
  35.  
  36. print_r(filter($array, $filter_elem));
  37.  
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Array
(
    [390] => Array
        (
            [0] => hammer
            [1] => Properties
            [2] => tools, hammer, properties
            [3] => 
            [4] => done
            [png] => Array
                (
                    [0] => hammer_16x.png
                    [1] => hammer_32x.png
                )

            [eps] => Array
                (
                    [0] => hammer_16x.eps
                    [1] => hammer_32x.eps
                )

            [ico] => Array
                (
                    [0] => hammer.ico
                )

        )

)