Проблема деления массива с переполнением стека

У меня очень маленькая проблема, но я просто не могу это исправить.

У меня есть следующий массив:

Array
(
[0] => Array
(
[Asset Address 1 Label] =>
[Asset Address 1 Organization] =>
[Asset Address 1 Name prefix] => Hotel Taj
[Asset Address 1 First name] => Maan
[Asset Address 1 Middle name] => Singh
[Asset Address 1 Last name] => Hotel
[Asset Address 1 Name suffix] =>
[Asset Address 1 Street] =>
[Asset Address 1 Street 2] =>
[Asset Address 1 Zip/Postal Code] => 110020
[Asset Address 1 City] =>
[Asset Address 1 State] =>
[Asset Address 1 State Combined code] => IN-DL
[Asset Address 1 Country ISO2 code] => IN
[Asset Address 1 Types 1 Name] => billing
[Asset Address 1 Types 2 Name] =>
[Asset Address 2 Label] => Himachal
[Asset Address 2 Organization] =>
[Asset Address 2 Name prefix] =>
[Asset Address 2 First name] => Hotel
[Asset Address 2 Middle name] =>
[Asset Address 2 Last name] => Taj
[Asset Address 2 Name suffix] =>
[Asset Address 2 Street] =>
[Asset Address 2 Street 2] =>
[Asset Address 2 Zip/Postal Code] => 110020
[Asset Address 2 City] =>
[Asset Address 2 State] =>
[Asset Address 2 State Combined code] => IN-CT
[Asset Address 2 Country ISO2 code] => IN
[Asset Address 2 Types 1 Name] => shipping
[Asset Address 2 Types 2 Name] =>
)

)

Я пытаюсь сломать внутренний адрес актива 1 & 2 в другое измерение в массиве

    Array
(

[0] => Array
(
[0] => Array
(
[Asset Address 1 Label] => asas
[Asset Address 1 Organization] =>
[Asset Address 1 Name prefix] =>
[Asset Address 1 First name] => asas
[Asset Address 1 Middle name] => asasas
[Asset Address 1 Last name] => asasa
[Asset Address 1 Name suffix] => asasa
[Asset Address 1 Street] => asasa
[Asset Address 1 Street 2] =>
[Asset Address 1 Zip/Postal Code] => 121212
[Asset Address 1 City] =>
[Asset Address 1 State] =>
[Asset Address 1 State Combined code] => AO-CUS
[Asset Address 1 Country ISO2 code] => AO
[Asset Address 1 Types 1 Name] => billing
[Asset Address 1 Types 2 Name] => shipping
)
[1] => Array
(
[Asset Address 2 Label] =>
[Asset Address 2 Organization] =>
[Asset Address 2 Name prefix] =>
[Asset Address 2 First name] =>
[Asset Address 2 Middle name] =>
[Asset Address 2 Last name] =>
[Asset Address 2 Name suffix] =>
[Asset Address 2 Street] =>
[Asset Address 2 Street 2] =>
[Asset Address 2 Zip/Postal Code] =>
[Asset Address 2 City] =>
[Asset Address 2 State] =>
[Asset Address 2 State Combined code] =>
[Asset Address 2 Country ISO2 code] =>
[Asset Address 2 Types 1 Name] =>
[Asset Address 2 Types 2 Name] =>
)

)

)

Обратите внимание, поскольку в массиве есть другие поля, не показанные выше, и поэтому мне пришлось попробовать выполнить фильтрацию с использованием регулярного выражения следующим образом:

        $filtred = array();
foreach($csv as $oldkey => $value){
$regExpression = '/(Asset Address )['.$oldkey.'] [\w]+/';
foreach ($value as $key => $value) {
if(preg_match($regExpression , $key)){
$filtred[$oldkey][$key] = $value;
}
}
}
print_r($filtred);

Эта проблема:

Это не работает с самого начала массива в основном, когда $oldkey 0 пропускает и работает для $oldkey1, Зачем?

Кроме того, с помощью этого метода я создаю отдельный массив в целом, я пытаюсь сделать это как в дополнительном измерении в существующем массиве.

Надеюсь, я хорошо объяснил.

0

Решение

Попробуйте приведенный ниже код для форматирования, как вы упоминали выше.

$filtred = array();
$n = 1;
foreach($csv as $oldkey => $values){
$i = 0; $j = 0;
foreach (array_keys($values) as $key => $value) {
if(!preg_match('/(Asset Address )['.$n.'] [\w]+/' , $value)){
$n++; $j++;
}
$filtred[$i][$j][$value] = $values[$value];
}
$i++;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector