Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Sort an array by values using a user-defined comparison function
<?php usort(array &$array, callable $callback): true
<?php                 $installOrder[$op->getPackage()->getName()] = $index;

            }

        }

        usort($uninstallOperations, function ($a, $b) use ($installOrder) {

            return $installOrder[$b->getPackage()->getName()] - $installOrder[$a->getPackage()->getName()];

        });



        $commandEvent = new CommandEvent(PluginEvents::COMMAND, 'reinstall', $input, $output);

        $composer->getEventDispatcher()->dispatch($commandEvent->getName(), $commandEvent);
<?php         if ($input->getOption('tree')) {

            $rootRequires = $this->getRootRequires();

            $packages = $installedRepo->getPackages();

            usort($packages, function (BasePackage $a, BasePackage $b) {

                return strcmp((string) $a, (string) $b);

            });

            $arrayTree = array();

            foreach ($packages as $package) {

                if (in_array($package->getName(), $rootRequires, true)) {
<?php         $packages = $this->groupLiteralsByName($pool, $literals);



        foreach ($packages as &$nameLiterals) {

            usort($nameLiterals, function ($a, $b) use ($pool, $requiredPackage) {

                return $this->compareByPriority($pool, $pool->literalToPackage($a), $pool->literalToPackage($b), $requiredPackage, true);

            });

        }



        foreach ($packages as &$sortedLiterals) {
<?php         $selected = \call_user_func_array('array_merge', array_values($packages));




        usort($selected, function ($a, $b) use ($pool, $requiredPackage) {

            return $this->compareByPriority($pool, $pool->literalToPackage($a), $pool->literalToPackage($b), $requiredPackage);

        });



        return $selected;

    }
<?php             }

        }



        usort($usedAliases, function ($a, $b) {

            return strcmp($a['package'], $b['package']);

        });



        return $usedAliases;

    }
<?php             && !(!$prevPackage->isDev() && $prevPackage->getInstallationSource() === 'dist' && $package->isDev())

        ) {

            $prevSource = $prevPackage->getInstallationSource();

            usort($sources, function ($a, $b) use ($prevSource) {

                return $a === $prevSource ? -1 : 1;

            });



            return $sources;

        }
<?php             return strcmp($a, $b);

        };

        usort($uninstalls, $sortByName);

        usort($installsUpdates, $sortByName);



        foreach (array_merge($uninstalls, $installsUpdates) as $operation) {
<?php             return strcmp($a, $b);

        };

        usort($uninstalls, $sortByName);

        usort($installsUpdates, $sortByName);



        foreach (array_merge($uninstalls, $installsUpdates) as $operation) {
<?php             $locked[] = $spec;

        }



        usort($locked, function ($a, $b) {

            $comparison = strcmp($a['name'], $b['name']);



            if (0 !== $comparison) {

                return $comparison;

            }




            return strcmp($a['version'], $b['version']);

        });



        return $locked;

    }
<?php             usort($branches, function ($a, $b) {

                $aRemote = 0 === strpos($a, 'remotes/');

                $bRemote = 0 === strpos($b, 'remotes/');



                if ($aRemote !== $bRemote) {

                    return $aRemote ? 1 : -1;

                }



                return strnatcasecmp($b, $a);

            });



            foreach ($branches as $candidate) {

                $candidateVersion = Preg::replace('{^remotes/\S+/}', '', $candidate);
<?php         }



        sort($data['dev-package-names']);

        usort($data['packages'], function ($a, $b) {

            return strcmp($a['name'], $b['name']);

        });



        $this->file->write($data);
<?php                 $actualInstalled[] = $package;

            }



            usort($actualInstalled, function ($a, $b) {

                return strcmp($a['name'], $b['name']);

            });



            $this->assertSame($expectInstalled, $actualInstalled);

        }