3v4l.org

run code in 500+ PHP versions simultaneously
<?php $items = array( array("itemName" => "Hat", "price" => 10.99, "categories" => ["apparel", "head"]), array("itemName" => "Scarf", "price" => 7.99, "categories" => ["apparel", "neck"]), array("itemName" => "Watch", "price" => 19.99, "categories" => ["jewelry", "electronics"]), array("itemName" => "Necklace", "price" => 99.99, "categories" => ["jewelry", "neck"]), array("itemName" => "Headphones", "price" => 29.99, "categories" => ["head", "electronics"]) ); foreach (array_unique(array_merge(...array_values(array_column($items, 'categories')))) as $value) { foreach ($items as $item) { if (in_array($value, $item['categories'])) { $categories[$value][] = $item['itemName']; } } } print_r($categories);
Output for 7.4.0 - 7.4.33, 8.0.1 - 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.21, 8.5.0 - 8.5.7
Array ( [apparel] => Array ( [0] => Hat [1] => Scarf ) [head] => Array ( [0] => Hat [1] => Headphones ) [neck] => Array ( [0] => Scarf [1] => Necklace ) [jewelry] => Array ( [0] => Watch [1] => Necklace ) [electronics] => Array ( [0] => Watch [1] => Headphones ) )

preferences:
99.57 ms | 1361 KiB | 4 Q