3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Demo { public function __construct(private string $val) { } public function get_sku() { return [ 'abc' => 1, 'def' => 2, 'ghi' => 3, 'jkl' => 4, ][$this->val]; } } $cart = (object) [ 'cart_contents' => [ ['data' => new Demo('ghi')], ['data' => new Demo('def')], ['data' => new Demo('jkl')], ['data' => new Demo('abc')], ] ]; $skus = []; $items_to_sort = []; foreach ($cart->cart_contents as $item ) { $skus[] = $item['data']->get_sku(); } array_multisort($skus, $cart->cart_contents); var_export($cart->cart_contents);
Output for 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
array ( 0 => array ( 'data' => \Demo::__set_state(array( 'val' => 'abc', )), ), 1 => array ( 'data' => \Demo::__set_state(array( 'val' => 'def', )), ), 2 => array ( 'data' => \Demo::__set_state(array( 'val' => 'ghi', )), ), 3 => array ( 'data' => \Demo::__set_state(array( 'val' => 'jkl', )), ), )
Output for 8.1.0 - 8.1.28
array ( 0 => array ( 'data' => Demo::__set_state(array( 'val' => 'abc', )), ), 1 => array ( 'data' => Demo::__set_state(array( 'val' => 'def', )), ), 2 => array ( 'data' => Demo::__set_state(array( 'val' => 'ghi', )), ), 3 => array ( 'data' => Demo::__set_state(array( 'val' => 'jkl', )), ), )

preferences:
52.78 ms | 402 KiB | 62 Q