fork download
  1. <?php
  2.  
  3. function cutString(string $string, int $length, string $appends)
  4. {
  5. if (mb_strlen($string) < $length) {
  6. return $string;
  7. }
  8. return mb_strimwidth($string, 0, $length) . $appends;
  9. }
  10.  
  11. $data = [
  12. [
  13. 'name' => 'Home page',
  14. 'sort' => 1,
  15. 'path' => '/',
  16. ],
  17. [
  18. 'name' => 'Сatalog',
  19. 'sort' => 110,
  20. 'path' => '/catalog/',
  21. ],
  22. [
  23. 'name' => 'Set of letters 1',
  24. 'sort' => 10,
  25. 'path' => '/section1/',
  26. ],
  27. [
  28. 'name' => 'Set of letters 2',
  29. 'sort' => 9,
  30. 'path' => '/section2/',
  31. ],
  32. [
  33. 'name' => 'Set of letters 3',
  34. 'sort' => 9200,
  35. 'path' => '/section3/',
  36. ],
  37. ];
  38.  
  39. $length = 5;
  40. $appends = '...';
  41.  
  42. $res = array_map(
  43. function ($array) use ($length, $appends) {
  44. $array['name'] = cutString($array['name'], $length, $appends);
  45. return $array;
  46. },
  47. $data
  48. );
  49.  
  50. var_dump($res);
Success #stdin #stdout 0.03s 26096KB
stdin
Standard input is empty
stdout
array(5) {
  [0]=>
  array(3) {
    ["name"]=>
    string(8) "Home ..."
    ["sort"]=>
    int(1)
    ["path"]=>
    string(1) "/"
  }
  [1]=>
  array(3) {
    ["name"]=>
    string(9) "Сatal..."
    ["sort"]=>
    int(110)
    ["path"]=>
    string(9) "/catalog/"
  }
  [2]=>
  array(3) {
    ["name"]=>
    string(8) "Set o..."
    ["sort"]=>
    int(10)
    ["path"]=>
    string(10) "/section1/"
  }
  [3]=>
  array(3) {
    ["name"]=>
    string(8) "Set o..."
    ["sort"]=>
    int(9)
    ["path"]=>
    string(10) "/section2/"
  }
  [4]=>
  array(3) {
    ["name"]=>
    string(8) "Set o..."
    ["sort"]=>
    int(9200)
    ["path"]=>
    string(10) "/section3/"
  }
}