Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的数组划分问题_Php_Arrays_Sorting_Arraylist_Multidimensional Array - Fatal编程技术网

PHP中的数组划分问题

PHP中的数组划分问题,php,arrays,sorting,arraylist,multidimensional-array,Php,Arrays,Sorting,Arraylist,Multidimensional Array,我有一个很小的问题,但我只是无法解决这个问题 我有以下数组: Array ( [0] => Array ( [Asset Address 1 Label] => [Asset Address 1 Organization] => [Asset Address 1 Name prefix] => Hotel Taj [Asset Address 1 F

我有一个很小的问题,但我只是无法解决这个问题

我有以下数组:

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
。为什么?

另外,使用这种方法,我创建了一个单独的数组,我试图在现有数组中增加维度


我希望我解释得很好。

请尝试下面的代码,以便按照上面提到的格式进行格式化

$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++;
}

$oldkey
0
时,regexp将为
/(资产地址)[0][\w]+/
。是否有
0
的数组键?哦,太傻了,好吧,我添加了$oldkey+1,它已经开始接受资产地址1和2。谢谢@Deadooshka问题1解决了,关于如何将现有地址字段替换为同一数组中的多维数组,有什么想法吗?