![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/jms/serializer/src/Ordering/ |
<?php declare(strict_types=1); namespace JMS\Serializer\Ordering; final class CustomPropertyOrderingStrategy implements PropertyOrderingInterface { /** @var int[] property => weight */ private $ordering; /** * @param int[] $ordering property => weight */ public function __construct(array $ordering) { $this->ordering = $ordering; } /** * {@inheritdoc} */ public function order(array $properties): array { $currentSorting = $properties ? array_combine(array_keys($properties), range(1, \count($properties))) : []; uksort($properties, function ($a, $b) use ($currentSorting) { $existsA = isset($this->ordering[$a]); $existsB = isset($this->ordering[$b]); if (!$existsA && !$existsB) { return $currentSorting[$a] - $currentSorting[$b]; } if (!$existsA) { return 1; } if (!$existsB) { return -1; } return $this->ordering[$a] < $this->ordering[$b] ? -1 : 1; }); return $properties; } }