PHPで共通のキー/値ペアに基づいて配列のオブジェクトを再配置する方法


  1. 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');
  1. 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で配列のオブジェクトを共通のキー/値ペアに基づいて再配置することができます。