Exemple #1
0
 /**
  * Получение всех ошибок по каждому полю, склееных в строку.
  *
  * Если контракт - сложный многомерный массив, то ошибки склеиваются из всех подмассивов для каждого старшего ключа.
  * На выходе всегда получается простой ассоциативный массив [поле => ошибки]. В случае сложного контракта полями
  * будут его старшие ключи.
  *
  * @param null   $key  ключ в массиве данных. Возможно составной ключ типа "['lvl1' => ['lvl2' => 'param1']]".
  * @param string $glue клей между соседними элементами одного массива
  * @param string $eol  клей между соседними подмассивами
  * @return array
  */
 public function getErrorsAsString($key = null, $glue = ' ', $eol = '')
 {
     $errors = $this->getErrors($key);
     foreach ($errors as &$v) {
         if (is_array($v)) {
             $v = Arrays::implode_recursive($v, $glue, $eol);
         }
     }
     return $errors;
 }
Exemple #2
0
 public function test_implode_recursive()
 {
     $arr = ['string 1', ['string 2', 'string 3'], ['sub' => ['string 4', 'string 5']]];
     $expect = Arrays::implode_recursive($arr, ' + ', ' rn ');
     $this->assertEquals($expect, 'string 1 rn  + string 2 + string 3 rn  + rn  + string 4 + string 5', 'Слияние многомерного массива в строку');
 }