Exemplo n.º 1
0
 /**
  * Переменовывание элементов массива
  *
  * @param array $data массив с данными
  * @param string $prefix префикс ключей
  * @param string $suffix суффикс ключей
  * @param string $addPS разделитель суффиксов, префиксов и ключей массива
  * @param string $sep разделитель ключей при склейке многомерных массивов
  * @return array массив с переименованными ключами
  */
 function rename_key_array($data, $prefix = '', $suffix = '', $addPS = '.', $sep = '.')
 {
     $out = array();
     if (is_array($data)) {
         if (!is_scalar($addPS)) {
             $addPS = '';
         }
         $InsertPrefix = is_scalar($prefix) && $prefix !== '' ? $prefix . $addPS : '';
         $InsertSuffix = is_scalar($suffix) && $suffix !== '' ? $addPS . $suffix : '';
         foreach ($data as $key => $item) {
             $key = $InsertPrefix . $key;
             $val = null;
             switch (true) {
                 case is_scalar($item):
                     $val = $item;
                     break;
                 case is_array($item):
                     $val = is_scalar($sep) && $sep !== '' ? rename_key_array($item, $key . $sep, $InsertSuffix, '', $sep) : array();
                     $out = array_merge($out, $val);
                     $val = '';
                     break;
             }
             $out[$key . $InsertSuffix] = $val;
         }
     }
     return $out;
 }
Exemplo n.º 2
0
 public function testEmptyParametersSuccess()
 {
     $out = array('key' => 'val', 'subkey' => '');
     $this->assertEquals($out, rename_key_array($this->data, '', '', '', ''));
 }