Сглаживание многомерного массива и представление изменений уровня в результатеPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сглаживание многомерного массива и представление изменений уровня в результате

Сообщение Anonymous »

Мне необходимо сгладить многомерную таблицу в PHP для следующих функций, чтобы сделать их более читабельными. Кроме того, эффект от этого скрипта занимает немного времени. Вот пример ввода и код, который должен работать:
$data = array(
"one" => "one",
"two" => array(
"three" => "three",
"four" => "four",
),
"five" => "five",
"six" => array(
"seven" => "seven",
"eight" => array(
"nine" => "nine",
"ten" => "ten"
)
)
);

$flat = array();

do {
$newFlat = array();
if (empty($data))
break;
if (empty($flat))
$flat = $data;
$findArray = FALSE;
foreach ($flat as $key => $value) {
if (is_array($value)) {
if (is_string($key))
$newFlat[] = 'Start' . $key;
foreach ($value as $keySec => $valueSec) {
if (is_array($valueSec)) {
if (is_string($keySec))
$newFlat[] = 'Start' . $keySec;
$newFlat[] = $valueSec;
if (is_string($keySec))
$newFlat[] = 'End' . $keySec;
$findArray = TRUE;
} else {
$newFlat[$keySec] = $value;
}
}
if (is_string($key))
$newFlat[] = 'End' . $key;
} else {
$newFlat[$key] = $value;
}
}
$flat = $newFlat;
} while($findArray);
print_r($flat);

Результат — фиксированная сумма $. Может быть, вы знаете, как преобразовать этот скрипт, чтобы использовать меньше времени и памяти? Я хочу, чтобы результат выглядел так:
$flat = [
'one' => 'one',
1 => 'Starttwo',
'three' => 'three',
'four' => 'four',
4 => 'Endtwo',
'five' => 'five,
6 => 'StartSix',
'seven' => 'seven',
8 => 'Starteight',
'nine' => 'nine',
'ten' => 'ten',
11 => 'Endeight',
12 => 'EndSix'
];
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»