<?php
/**
* Compacts output of queues for an experiment, handling edge cases.
*
* @param array $queue An array representing the queue of items.
* @param string $prefix A string to prepend to each output line.
* @param int $max_lines Maximum number of lines to output. Prevents runaway output.
* @return string Compacted output string.
*/
function compactQueueOutput(array $queue, string $prefix = '', int $max_lines = 100): string
{
$output = '';
$line_count = 0;
foreach ($queue as $item) {
//Handle potential null or undefined item values.
if ($item === null || $item === undefined) {
$output .= $prefix . "Null/Undefined item\n";
} else {
$output .= $prefix . print_r($item, true) . "\n"; //Use print_r for complex data structures
}
$line_count++;
if ($line_count >= $max_lines) {
$output .= "\n... (truncated after $max_lines lines)\n"; // Indicate truncation
break; // Stop processing if max lines reached.
}
}
return $output;
}
//Example Usage (for testing)
if (isset($_SERVER['argv'][1])) {
$queue = ['item1', 'item2', null, 'item4', ['a', 'b'], 'item6', 'item7', 'item8', 'item9', 'item10', 'item11', 'item12', 'item13', 'item14', 'item15'];
$prefix = 'Experiment Data: ';
$max_lines = 5;
echo compactQueueOutput($queue, $prefix, $max_lines) . "\n";
}
?>
Add your comment