对于一款游戏,我有一系列的房子'每个房子属于一个城市'。我想基于这个城市将这个集合(它是一个阵列)分开,所以每个城市都有自己的房屋阵列。我发现没有内置的数组函数来执行此操作(例如array_split
进行回调),那么我该如何做呢?
我想迭代遍历数组的每个元素,但这似乎非常慢。房子已经全部按城市ID排序,所以如果我得到城市id改变的确切位置,我可以使用一些拆分功能。
数组中的房屋存储如下:
array(3) {
["id"]=> string(1) "1",
["name"]=> string(13) "Example House",
["city_id"]=> string(1) "1",
}
城市只是代表他们的数字,而不是另一个对象。
我希望结果如下:
array(n) {
[1]=> array(o) {
["id"]=> string(1) "1",
["name"]=> string(13) "Example House",
}, ...
}
这样做是否正确?是否有内置函数或更好的算法?
答案 0 :(得分:1)
在没有循环的情况下很难在你的结构上工作..也许你可以像这样简化它..
$new_arr = array();
foreach($arr as $arr1)
{
$new_arr[$arr1['id']] = array_slice($arr1,1);
}
print_r($new_arr);
尽管可以使用数组函数实现这一点,但与foreach