fork download
  1. <?php
  2.  
  3. function unique_multidim_array($array, $key, $count) {
  4. $temp_array = array();
  5. $i = 0;
  6. $key_array = array();
  7.  
  8. foreach($array as $val) {
  9. $save = false;
  10. if (!in_array($val[$key], $key_array)) {
  11. $key_array[$i] = $val[$key];
  12. $save = true;
  13. $$val[$key] = 1;
  14. }
  15. elseif($$val[$key] < $count) {
  16. $save = true;
  17. $$val[$key]++;
  18. }
  19. if($save) {
  20. $temp_array[$i] = $val;
  21. }
  22. $i++;
  23. }
  24. return $temp_array;
  25. }
  26.  
  27. $a = [
  28. ['lang' => 'Arabic', 'url' => 'url1'],
  29. ['lang' => 'Arabic', 'url' => 'url2'],
  30. ['lang' => 'Arabic', 'url' => 'url3'],
  31. ['lang' => 'English', 'url' => 'url4'],
  32. ['lang' => 'English', 'url' => 'url5'],
  33. ['lang' => 'English', 'url' => 'url6'],
  34. ];
  35.  
  36. print_r(unique_multidim_array($a,'lang',2));
Success #stdin #stdout 0.02s 52432KB
stdin
Standard input is empty
stdout
Array
(
    [0] => Array
        (
            [lang] => Arabic
            [url] => url1
        )

    [1] => Array
        (
            [lang] => Arabic
            [url] => url2
        )

    [3] => Array
        (
            [lang] => English
            [url] => url4
        )

    [4] => Array
        (
            [lang] => English
            [url] => url5
        )

)