ゲームの場合、「家」のコレクションがあり、各家は「都市」に属しています。この都市に基づいてこのコレクション(配列)を分離したいので、各都市には独自の家の配列があります。これを行うための組み込みの配列関数(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",
}, ...
}
それを行うのは正しい方法ですか?組み込み関数またはより良いアルゴリズムはありますか?
ループせずに構造を操作するのはかなり難しいです。たぶん、このように単純化することができます。
$new_arr = array();
foreach($arr as $arr1)
{
$new_arr[$arr1['id']] = array_slice($arr1,1);
}
print_r($new_arr);
これは配列関数を使用して実現できますが、パフォーマンスは foreach
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加