<?php
//using json_encode() and json_decode() just for getting exact array structure what you have posted
$array = array(
0=>Array(
"product1"=>json_decode(json_encode(Array(
"product_id"=>"9416",
"price"=>"110.00"
))),
"product2"=>json_decode(json_encode(Array(
"product_id"=>"9431",
"price"=>"100.00"
)))
),
1=>Array(
"product1"=>json_decode(json_encode(Array(
"product_id"=>"1254",
"price"=>"75.00"
))),
"product2"=>json_decode(json_encode(Array(
"product_id"=>"9431",
"price"=>"62.00"
)))
),
2=>Array(
"product1"=>json_decode(json_encode(Array(
"product_id"=>"9416",
"price"=>"45.00"
))),
"product2"=>json_decode(json_encode(Array(
"product_id"=>"9431",
"price"=>"50.00"
)))
),
3=>Array(
"product1"=>json_decode(json_encode(Array(
"product_id"=>"9416",
"price"=>"60.00"
))),
"product2"=>json_decode(json_encode(Array(
"product_id"=>"9431",
"price"=>"25.00"
)))
),
);
function comparePrice($a,$b)
{
$a_price = $a['product1']->price + $a['product2']->price;
$b_price = $b['product1']->price + $b['product2']->price;
if ($a_price ==$b_price) return 0;
return ($a_price<$b_price)? -1:1;
}
usort($array,'comparePrice');
print_r($array);
- Output for 5.6.38, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.4, 8.3.6 - 8.3.7
- Array
(
[0] => Array
(
[product1] => stdClass Object
(
[product_id] => 9416
[price] => 60.00
)
[product2] => stdClass Object
(
[product_id] => 9431
[price] => 25.00
)
)
[1] => Array
(
[product1] => stdClass Object
(
[product_id] => 9416
[price] => 45.00
)
[product2] => stdClass Object
(
[product_id] => 9431
[price] => 50.00
)
)
[2] => Array
(
[product1] => stdClass Object
(
[product_id] => 1254
[price] => 75.00
)
[product2] => stdClass Object
(
[product_id] => 9431
[price] => 62.00
)
)
[3] => Array
(
[product1] => stdClass Object
(
[product_id] => 9416
[price] => 110.00
)
[product2] => stdClass Object
(
[product_id] => 9431
[price] => 100.00
)
)
)
- Output for 8.3.5
- Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Array
(
[0] => Array
(
[product1] => stdClass Object
(
[product_id] => 9416
[price] => 60.00
)
[product2] => stdClass Object
(
[product_id] => 9431
[price] => 25.00
)
)
[1] => Array
(
[product1] => stdClass Object
(
[product_id] => 9416
[price] => 45.00
)
[product2] => stdClass Object
(
[product_id] => 9431
[price] => 50.00
)
)
[2] => Array
(
[product1] => stdClass Object
(
[product_id] => 1254
[price] => 75.00
)
[product2] => stdClass Object
(
[product_id] => 9431
[price] => 62.00
)
)
[3] => Array
(
[product1] => stdClass Object
(
[product_id] => 9416
[price] => 110.00
)
[product2] => stdClass Object
(
[product_id] => 9431
[price] => 100.00
)
)
)
preferences:
218.25 ms | 405 KiB | 211 Q