PHP将数据推送到不同的数组

时间:2014-09-08 11:44:03

标签: php arrays

我有一个包含位置数据的多维数组,现在我想将这个数组拆分成多个按邮政编码排序的数组(邮政编码是位置数组中的一个项目)

我有:

array(
[0]=>array([name]=>"name1", [postalcode]=>"1111", [etc]=>"etc"),
[1]=>array([name]=>"name2", [postalcode]=>"2222", [etc]=>"etc")
);

我想将第一个项目推送到一个名为1111的数组,另一个推送到2222(这是在4000个邮政编码区域中的10000多个位置)

3 个答案:

答案 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);