@Drumsid

Все значения массива в нижний регистр php?

Решаю задачку по php, в принципе решение уже есть хотел пару нюансов уточнить.
Есть массив, первый пункт задачи, все значения тримить и привести в нижний регистр.
$raw = [
      [
          'name' => 'istambul',
          'country' => 'turkey'
      ],
      [
          'name' => 'Moscow ',
          'country' => ' Russia'
      ],
      [
          'name' => 'iStambul',
          'country' => 'tUrkey'
      ],
      [
          'name' => 'antalia',
          'country' => 'turkeY '
      ],
      [
          'name' => 'samarA',
          'country' => '  ruSsiA'
      ],
      [
          'name' => 'istambul',
          'country' => 'usa'
      ],
  ];
$maping = array_map(function ($value){
  $result = [];
  foreach ($value as $k => $v) {
    $result[$k] = trim(strtolower($v));
  }
  return $result;
}, $raw);

Дальше уже нужно сортировать и т.п.
По данному моменту хотел спросить, может есть стандартная функция которая тримит и в нижний регистр массив приведет? А вообще, задачу нужно решить с помощью collect я ее совсем еще не знаю может есть там подобные функции? Так то я покопаюсь конечно, но пока не нашел там подобных...может не дошел еще... (только треть функций в collect посмотрел )
  • Вопрос задан
  • 1862 просмотра
Пригласить эксперта
Ответы на вопрос 2
xEpozZ
@xEpozZ
Веб-разработчик
По данному моменту хотел спросить, может есть стандартная функция которая тримит и в нижний регистр массив приведет?

Дак вы же их и используете: trim(strtolower($v))

---

И да, а почему сначала array_map, а потом foreach?

$maping = array_map(function ($value){
    return array_map(function ($value) {
        return trim(strtolower($value));
    }, $value);
}, $raw);
Ответ написан
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
В пхп недостаточно удобных "стандартных" функций (в том смысле что хотелось бы больше)

Если предлагать у них на трекере - они защищаются тем, что тебе нужно подымать голосование RFC чтобы много людей проголосовали "за"

На текущем уровне разобщенности люди не способны за кого-то голосовать, а шанс что они столкнуться с одинаковой проблемой и тем более осознают что это проблема - вообще никакущий - это заморозило язык, они разрабатывают сейчас проверку типов по интерфейсу в 7.4 и прекомпиляцию исходников, но не делают язык удобнее для тех, кто ещё не освоил ООП)

Очень часто язык предлагает не лениться писать foreach

$result = array_map('mb_strtolower, array_map('trim', $arr));
var_dump($result);


или

// передаем по ссылке чтобы заменить на любом уровне вложенности прямо в исходном массиве
array_walk_recursive($arr, function (&$v) {
  $v = mb_strtolower(trim($v));
});
var_dump($arr);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы