function getResultData($rawData, $wide) { global $orders, $orderLen, $originalOrders; //$orders = json_decode($rawData); $orders = array(); $lines = explode("\n", $rawData, 10000); foreach ($lines as $line) { list($orderId, $packingStart, $duration) = explode("\t", $line); $order = new stdClass(); $order->orderId = $orderId; $order->packingStart = $packingStart; $order->duration = $duration; $orders[] = $order; } $originalOrders = $orders; $orderLen = count($orders); foreach ($orders as $key => $order) { $order->oid = $key; } usort($orders, 'sort_order'); $start = $orders[0]->packingStart; $maxwidth = $orders[count($orders) - 1]->packingStart - $start; $widthPer = 5500 / $maxwidth; foreach ($orders as $key => $order) { $orders[$key]->packingStart = ($order->packingStart - $start) * $widthPer; $orders[$key]->duration = $order->duration * $widthPer; } $order_tree = array(); $idx = 0; while ($idx < $orderLen) { $tree = orderTree($idx); $order_tree[] = $tree; fillMissing($tree, 0, $wide, 0); $idx = $tree->next_idx; } $resultOrders = array(); foreach ($originalOrders as $order) { $resultOrder = new stdClass(); $resultOrder->orderId = $order->orderId; $resultOrder->packingStart = $order->packingStart; $resultOrder->duration = $order->duration; $resultOrder->width = $order->width; $resultOrder->left = $order->left; $resultOrders[] = $resultOrder; } return json_encode($resultOrders); }
function makeD3Readable($tree) { $d3Tree = []; foreach ($tree as $key => $value) { if (is_array($value)) { $object = []; $object['name'] = $key; $object['children'] = makeD3Readable($value); $d3Tree[] = $object; } else { $leave = []; $leave['name'] = $key; $leave['size'] = $value; $d3Tree[] = $leave; } } return $d3Tree; } function wrap($tree) { $d3Tree = []; $d3Tree['name'] = 'Begroting'; $d3Tree['children'] = $tree; return $d3Tree; } // END COPY PASTE $csv = read_csv_german(); $data = parse_german($csv); $tree = convertToTree($data); $completeTree = fillMissing($tree); echo json_encode($completeTree, JSON_UNESCAPED_UNICODE);