Мне необходимо сгладить многомерную таблицу в 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'
];
Сглаживание многомерного массива и представление изменений уровня в результате ⇐ Php
Кемеровские программисты php общаются здесь
1778705422
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'
];
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия