Cherry83

Array Manipulator

Feb 2nd, 2017
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.51 KB | None | 0 0
  1. <?php
  2. $input = trim(fgets(STDIN));
  3. $numbers = explode(" ", $input);
  4.  
  5. while (true) {
  6.     $input = trim(fgets(STDIN));
  7.     if ($input == "print") break;
  8.  
  9.     $command = explode(" ", $input);
  10.     switch ($command[0]) {
  11.         case "add" :
  12.             if ($command[1] <= count($numbers))
  13.                 array_splice($numbers, $command[1], 0, $command[2]);
  14.             break;
  15.         case "addMany" :
  16.             if ($command[1] <= count($numbers))
  17.                 array_splice($numbers, $command[1], 0, array_slice($command, 2));
  18.             break;
  19.         case "contains" :
  20.             $found = array_search($command[1], $numbers);
  21.             echo ($found === false ? -1 : $found) . "\n";
  22.             break;
  23.         case "remove" :
  24.             if ($command[1] < count($numbers))
  25.                 array_splice($numbers, $command[1], 1);
  26.             break;
  27.         case "shift" :
  28.             while (true) {
  29.                 $numbers = array_merge(array_slice($numbers, $command[1], NULL, true), array_slice($numbers, 0, $command[1], true));
  30.                 $command[1] -= count($numbers);
  31.                 if ($command[1] < 0) break;
  32.             }
  33.             break;
  34.         case "sumPairs" :
  35.             for ($i = 0; $i < count($numbers); $i++) {
  36.                 if (key_exists($i + 1, $numbers)) {
  37.                     $numbers[$i] += $numbers[$i + 1];
  38.                     array_splice($numbers, $i + 1, 1);
  39.                 }
  40.             }
  41.             break;
  42.     }
  43. }
  44. echo "[" . implode(", ", $numbers) . "]";
Advertisement
Add Comment
Please, Sign In to add comment