3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = array( 0 => array ( 'item_id' => '1', 'store_id' => '1', 'price' => '74.99' ), 1 => array( 'item_id' => '2' , 'store_id' => '1' , 'price' => '35.99' ), 2 => array( 'item_id' => '3' , 'store_id' => '1' , 'price' => '89.99' ), 3 => array( 'item_id' => '1' , 'store_id' => '2' , 'price' => '69.99' ), 4 => array( 'item_id' => '2', 'store_id' => '2', 'price' => '39.99' ), 5 => array( 'item_id' => '3', 'store_id' => '2', 'price' => '95.99' ) ); $output = array(); foreach($arr as $item){ if(in_array($item['item_id'], array_column($output, 'item_id'))){ // add store to already existing item $key = array_search($item['item_id'], array_column($arr, 'item_id')); $output[$key]['store_id_' . $item['store_id']] = $item['price']; }else{ // add new item with store $tmp = array( 'item_id' => $item['item_id'], 'store_id_' . $item['store_id'] => $item['price'], ); $output[] = $tmp; } } echo '<pre>'; print_r($output); ?>
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
<pre>Array ( [0] => Array ( [item_id] => 1 [store_id_1] => 74.99 [store_id_2] => 69.99 ) [1] => Array ( [item_id] => 2 [store_id_1] => 35.99 [store_id_2] => 39.99 ) [2] => Array ( [item_id] => 3 [store_id_1] => 89.99 [store_id_2] => 95.99 ) )

preferences:
128.7 ms | 409 KiB | 5 Q