- usortを使用したソート: usort関数を使用して、配列のオブジェクトを指定したキー/値ペアに基づいてソートする方法です。
function sortByKeyValue($array, $key) {
usort($array, function($a, $b) use ($key) {
return $a->$key <=> $b->$key;
});
return $array;
}
// 使用例:
$objects = [
['name' => 'John', 'age' => 25],
['name' => 'Jane', 'age' => 30],
['name' => 'Bob', 'age' => 20]
];
$sortedObjects = sortByKeyValue($objects, 'age');
- array_multisortを使用したソート: array_multisort関数を使用して、複数のキー/値ペアに基づいて配列のオブジェクトをソートする方法です。
function sortByMultipleKeys($array, $keys) {
foreach ($keys as $key) {
$sortColumn = [];
foreach ($array as $obj) {
$sortColumn[] = $obj->$key;
}
array_multisort($sortColumn, $array);
}
return $array;
}
// 使用例:
$objects = [
['name' => 'John', 'age' => 25],
['name' => 'Jane', 'age' => 30],
['name' => 'Bob', 'age' => 20]
];
$sortedObjects = sortByMultipleKeys($objects, ['age', 'name']);
これらの例では、配列のオブジェクトをage
キーに基づいてソートしていますが、他のキーに基づいてソートすることもできます。必要に応じて、関数の引数や配列の構造を変更してください。
このようにして、PHPで配列のオブジェクトを共通のキー/値ペアに基づいて再配置することができます。