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语句中缺少一个右括号:)是的,还有一个右括号……很抱歉:-)