3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ [ "product_code" => "67021687", "product_name" => "Spaces", "cha_sty_id" => "PUSH", "chs_name" => "WF" ], [ "product_code" => "67021687", "product_name" => "Spaces", "cha_sty_id" => "PUSH", "chs_name" => "WFR" ], [ "product_code" => "67021687", "product_name" => "Spaces", "cha_sty_id" => "PUSH", "chs_name" => "STK Food" ], [ "product_code" => "67021687", "product_name" => "Spaces", "cha_sty_id" => "PULL", "chs_name" => "4 Stars" ], [ "product_code" => "67021687", "product_name" => "Spaces", "cha_sty_id" => "PULL", "chs_name" => "5 Stars" ], [ "product_code" => "67021687", "product_name" => "Spaces", "cha_sty_id" => "PULL", "chs_name" => "Modern Thai" ], [ "product_code" => "67021687", "product_name" => "Spaces", "cha_sty_id" => "PULL", "chs_name" => "BBQ Buffet" ], [ "product_code" => "67021687", "product_name" => "Spaces", "cha_sty_id" => "PULL", "chs_name" => "Chinese" ] ]; var_export( array_values( array_reduce( $array, function($result, $row) { $result[$row['product_code']]['product_code'] = $row['product_code']; $result[$row['product_code']]['product_name'] = $row['product_name']; $result[$row['product_code']][strtolower($row['cha_sty_id'])][] = $row['chs_name']; return $result; }, [] ) ) );
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
array ( 0 => array ( 'product_code' => '67021687', 'product_name' => 'Spaces', 'push' => array ( 0 => 'WF', 1 => 'WFR', 2 => 'STK Food', ), 'pull' => array ( 0 => '4 Stars', 1 => '5 Stars', 2 => 'Modern Thai', 3 => 'BBQ Buffet', 4 => 'Chinese', ), ), )

preferences:
88.64 ms | 407 KiB | 5 Q