0
我有一个非常小的问题,但我只是无法修复这个问题。阵列的划分问题在PHP
我有以下阵列:
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
。为什么?
而且,用这种方法我干脆创建一个单独的阵列,我想有作为现有阵列中的额外的维度。
我希望我已经很好地解释。
当'$ oldkey'为'0'时,正则表达式将为'/(资产地址)[0] [\ w] + /'。有'0'的数组键吗? – Deadooshka
哦,真是太傻了,好吧,我添加了$ oldkey + 1,它已经开始接受资产地址1&2。谢谢! – Aayush
@Deadooshka问题1解决了,关于如何将现有地址字段替换为同一数组中的多维数组的任何想法? – Aayush