Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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 - Fatal编程技术网

Php数组函数

Php数组函数,php,arrays,Php,Arrays,我有一个数组。我想这样更改此阵列: array1 = Array ( [0] => Array ( [direction_id] => 3 [direction_name] => Hamza [direction_type_name] => Metro

我有一个数组。我想这样更改此阵列:

 array1 = Array
        (
            [0] => Array
                (
                    [direction_id] => 3
                    [direction_name] => Hamza
                    [direction_type_name] => Metro
                )

            [1] => Array
                (
                    [direction_id] => 4
                    [direction_name] => Alisher Navoiy
                    [direction_type_name] => Metro
                )

            [2] => Array
                (
                    [direction_id] => 2
                    [direction_name] => Bunyodkor
                    [direction_type_name] => Metro
                )

            [3] => Array
                (
                    [direction_id] => 1
                    [direction_name] => Skver
                    [direction_type_name] => Orienter
                )

            [4] => Array
                (
                    [direction_id] => 6
                    [direction_name] => Mustaqillik maydoni
                    [direction_type_name] => Orienter
                )

            [5] => Array
                (
                    [direction_id] => 5
                    [direction_name] => Bobur parki
                    [direction_type_name] => Orienter
                )

        )
array1 = Array
    (
        [Metro] => Array
            (
                [direction_id] => 3
                [direction_name] => Hamza
                [direction_id] => 4
                [direction_name] => Alisher Navoiy    
                [direction_id] => 2
                [direction_name] => Bunyodkor 

            )


        [Orienter] => Array
            (
                [direction_id] => 1
                [direction_name] => Skver
                [direction_type_name] => Orienter
                [direction_id] => 6
                [direction_name] => Mustaqillik maydoni
                [direction_id] => 5
                [direction_name] => Bobur parki
            )

    )

我该怎么做呢?

我想你可以做一些简单的事情,比如在你的大阵列上迭代: 您可以创建另外两个阵列:Metro和Orienter 对于大阵列中的所有项目:
如果direction\u type\u name==Metro,则将信息添加到Metro数组,否则将信息添加到Orienter数组

您不喜欢这样。你不能重复按键。它们必须是独一无二的

你可能想要这样的东西:

 array1 = Array
        (
            [0] => Array
                (
                    [direction_id] => 3
                    [direction_name] => Hamza
                    [direction_type_name] => Metro
                )

            [1] => Array
                (
                    [direction_id] => 4
                    [direction_name] => Alisher Navoiy
                    [direction_type_name] => Metro
                )

            [2] => Array
                (
                    [direction_id] => 2
                    [direction_name] => Bunyodkor
                    [direction_type_name] => Metro
                )

            [3] => Array
                (
                    [direction_id] => 1
                    [direction_name] => Skver
                    [direction_type_name] => Orienter
                )

            [4] => Array
                (
                    [direction_id] => 6
                    [direction_name] => Mustaqillik maydoni
                    [direction_type_name] => Orienter
                )

            [5] => Array
                (
                    [direction_id] => 5
                    [direction_name] => Bobur parki
                    [direction_type_name] => Orienter
                )

        )
array1 = Array
    (
        [Metro] => Array
            (
                [direction_id] => 3
                [direction_name] => Hamza
                [direction_id] => 4
                [direction_name] => Alisher Navoiy    
                [direction_id] => 2
                [direction_name] => Bunyodkor 

            )


        [Orienter] => Array
            (
                [direction_id] => 1
                [direction_name] => Skver
                [direction_type_name] => Orienter
                [direction_id] => 6
                [direction_name] => Mustaqillik maydoni
                [direction_id] => 5
                [direction_name] => Bobur parki
            )

    )
您需要做的是使用构造来循环原始数组,并按照您想要的方式重新组织数据


。。。或者等待某人在其中一个答案中发布您所需的确切代码。

您不能这样做,因为每个数组不能有两个相同的键,但您可以做的是:

[Metro] => Array
    (
        0 => array(
            [direction_id] => 3
            [direction_name] => Hamza
        ),
        1 => array(
            [direction_id] => 4
            [direction_name] => Alisher Navoiy    
        )
            ...
最终会变成这样

$newArray = array();
foreach($array1 as $val){
     if(!isset($newArray[$val['direction_type_name']])){
         $newArray[$val['direction_type_name']] = array();
     }
     $newArray[$val['direction_type_name']][] = array(
                                      'direction_id' => $val['direction_id'],
                                      'direction_name' => $val['direction_name']
                                        )
}
试试这个:

$newArray = Array (
  [Metro] => Array
        (
            [0] => Array (
               [direction_id] => 3
               [direction_name] => Hamza
            )

            [1] => Array (
               [direction_id] => 4
               [direction_name] => Alisher Navoiy    
            )
            ...

还有……你怎么知道$array1['Metro']['direction\u id']的值呢?当然,这也是可行的,此外,你的if语句中缺少一个右括号:)是的,还有一个右括号……很抱歉:-)