我有一个包含位置数据的多维数组,现在我想将这个数组拆分成多个按邮政编码排序的数组(邮政编码是位置数组中的一个项目)
我有:
array(
[0]=>array([name]=>"name1", [postalcode]=>"1111", [etc]=>"etc"),
[1]=>array([name]=>"name2", [postalcode]=>"2222", [etc]=>"etc")
);
我想将第一个项目推送到一个名为1111的数组,另一个推送到2222(这是在4000个邮政编码区域中的10000多个位置)
答案 0 :(得分:1)
KISS怎么办?
参考用于大型迭代的性能。 READ MORE
$input = array(
array('name' => "name1", 'postalcode' => "1111", 'etc' => "etc"),
array('name' => "name2", 'postalcode' => "2222", 'etc' => "etc"),
);
$result = array();
foreach ($input as &$array) {
$result[$array['postalcode']][] = $array;
}
答案 1 :(得分:0)
首先,这不是您想要在每个请求上执行的操作。考虑从您阅读此信息的任何位置更改数据结构。
其次,据我所知,你需要通过数组并构建一个新数组:
$per_code = array();
for ($c=0; $c<count($codes); $c++)
$per_code[$codes[$c]['postalcode']] = $codes[$c];
如果要减少内存影响,请考虑使用原始阵列中的相同实例。
$per_code = array();
for ($c=0; $c<count($codes); $c++)
$per_code[$codes[$c]['postalcode']] = &$codes[$c];
答案 2 :(得分:0)
说,
$location =array(
array('name'=>"name1", 'postalcode'=>"1111", 'etc'=>"etc"),
array('name'=>"name2", 'postalcode'=>"2222", 'etc'=>"etc")
);
$newAry = array();
foreach($location as $key=>$value)
{
$postcode = $value['postalcode'];
$newAry['location'][$postcode][] = $value;
}
print_r($newAry);