3v4l.org

run code in 300+ PHP versions simultaneously
<?php class my_obj { public $term_id; public $name; public $slug; public function __construct($i, $n, $s) { $this->term_id = $i; $this->name = $n; $this->slug = $s; } } $objA = new my_obj(23, 'Assasination', 'assasination'); $objB = new my_obj(14, 'Campaign Finance', 'campaign-finance'); $objC = new my_obj(15, 'Campaign Finance', 'campaign-finance-good-government-political-reform'); $array = array($objA, $objB, $objC); echo 'Original array:\n'; print_r($array); /** Answer Code begins here **/ // Build temporary array for array_unique $tmp = array(); foreach($array as $k => $v) $tmp[$k] = $v->name; // Find duplicates in temporary array $tmp = array_unique($tmp); // Build new array with only non-duplicate items $filtered = []; foreach($array as $k => $v) { if (array_key_exists($k, $tmp)) $filtered[$k] = $v; } /** Answer Code ends here **/ echo 'After removing duplicates\n'; print_r($filtered);
Output for 5.6.40, 8.1.23 - 8.1.33, 8.2.10 - 8.2.29, 8.3.0 - 8.3.4, 8.3.6 - 8.3.25, 8.4.1 - 8.4.12
Original array:\nArray ( [0] => my_obj Object ( [term_id] => 23 [name] => Assasination [slug] => assasination ) [1] => my_obj Object ( [term_id] => 14 [name] => Campaign Finance [slug] => campaign-finance ) [2] => my_obj Object ( [term_id] => 15 [name] => Campaign Finance [slug] => campaign-finance-good-government-political-reform ) ) After removing duplicates\nArray ( [0] => my_obj Object ( [term_id] => 23 [name] => Assasination [slug] => assasination ) [1] => my_obj Object ( [term_id] => 14 [name] => Campaign Finance [slug] => campaign-finance ) )
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 Original array:\nArray ( [0] => my_obj Object ( [term_id] => 23 [name] => Assasination [slug] => assasination ) [1] => my_obj Object ( [term_id] => 14 [name] => Campaign Finance [slug] => campaign-finance ) [2] => my_obj Object ( [term_id] => 15 [name] => Campaign Finance [slug] => campaign-finance-good-government-political-reform ) ) After removing duplicates\nArray ( [0] => my_obj Object ( [term_id] => 23 [name] => Assasination [slug] => assasination ) [1] => my_obj Object ( [term_id] => 14 [name] => Campaign Finance [slug] => campaign-finance ) )

preferences:
74.38 ms | 411 KiB | 5 Q