PHP преобразовывают вложенный массив в единый массив при конкатенации ключей?

Стоит исследовать Ваш текущий рабочий процесс, чтобы видеть, если блокировка изображений действительно необходима. Для двух человек относительно необычно независимо отредактировать изображение, и немного коммуникации может иметь большое значение.

9
задан Tom Penzer 14 February 2016 в 19:38
поделиться

2 ответа

Примерно так:

function makeNonNestedRecursive(array &$out, $key, array $in){
    foreach($in as $k=>$v){
        if(is_array($v)){
            makeNonNestedRecursive($out, $key . $k . '_', $v);
        }else{
            $out[$key . $k] = $v;
        }
    }
}

function makeNonNested(array $in){
    $out = array();
    makeNonNestedRecursive($out, '', $in);
    return $out;
}

// Example
$fooCompressed = makeNonNested($foo);
15
ответ дан 4 December 2019 в 08:52
поделиться

Вот функция, которая позволяет указать префикс верхнего уровня с помощью второго параметра:

function flatten_array($array, $prefix = null) {
  if ($prefix) $prefix .= '_';

  $items = array();

  foreach ($array as $key => $value) {
    if (is_array($value))
      $items = array_merge($items,  flatten_array($value, $prefix . $key));
    else
      $items[$prefix . $key] = $value;
  }

  return $items;
}
3
ответ дан 4 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: