PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
Copy Clear
Copy Format Clear
<?php $arr = [ "1:id" => "5", "1:port_to" => "asdasdasd", "1:new_york" => "0", "1:savannah" => "0", "1:texas" => "0", "1:california" => "0", "1:seattle" => "0", "2:id" => "2", "2:port_to" => "bremen", "2:new_york" => "500", "2:savannah" => "500", "2:texas" => "600", "2:california" => "1050", "2:seattle" => "1100", "3:id" => "3", "3:port_to" => "klaipeda", "3:new_york" => "825", "3:savannah" => "925", "3:texas" => "1000", "3:california" => "1450", "3:seattle" => "0", "4:id" => "4", "4:port_to" => "gdynia", "4:new_york" => "875", "4:savannah" => "875", "4:texas" => "1000", "4:california" => "1400", "4:seattle" => "0" ]; function changeArr($array) { $newArr = array(); $i = 1; foreach ($array as $key => $value) { $newVal = explode(':', $key); $valArr = array($newVal[1] => $value); $newIndex = (int)$newVal[0]; if ($i == $newIndex) { $old = $newArr[$newIndex]; if ($old == NULL) { $new = $valArr; } else { $new = array_merge($old, $valArr); } } else { $i++; $new = $valArr; } $newArr[$newIndex] = $new; } return $newArr; } var_dump(changeArr($arr)); $res = array_reduce ( array_keys ($arr), function ($res, $key) use ($arr) { list($k1, $k2) = explode (':', $key); if (!isset($res[$k1])) $res[$k1] = []; $res[$k1][$k2] = $arr[$key]; return $res; }, [] ); var_dump ($res);
Show:  
Copy Clear