3v4l.org

run code in 300+ PHP versions simultaneously
<?php $json = '[{ "name": "abc", "category": "new_cat", "selectedLanguage": { "de": "Deutsch", "de_status": "APPROVED" } }, { "name": "def", "category": "new_def", "selectedLanguage": { "es": "Espanol", "es_status": "APPROVED" } }, { "name": "abc", "category": "new_cat", "selectedLanguage": { "en": "English", "en_status": "APPROVED" } }]'; $result = []; foreach (json_decode($json, true) as $row) { $result[$row['name']] = !isset($result[$row['name']]) ? $row : array_replace_recursive($result[$row['name']], $row); } var_export(array_values($result));
Output for 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.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
array ( 0 => array ( 'name' => 'abc', 'category' => 'new_cat', 'selectedLanguage' => array ( 'de' => 'Deutsch', 'de_status' => 'APPROVED', 'en' => 'English', 'en_status' => 'APPROVED', ), ), 1 => array ( 'name' => 'def', 'category' => 'new_def', 'selectedLanguage' => array ( 'es' => 'Espanol', 'es_status' => 'APPROVED', ), ), )

preferences:
101.71 ms | 1583 KiB | 4 Q