3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = "Football / Germany / 1.Liga Football / Germany / 1.Liga Football / Germany / 2.Liga Football / Germany / 2.Liga Football / Germany / 2.Liga Football / England / 1.Liga Football / England / 1.Liga Football / England / 2.Liga Football / England / 2.Liga Football / England / 3.Liga Hockey / Germany / 1.Liga Hockey / Germany / 1.Liga Hockey / Germany / 2.Liga Fechten / Meisterschaft Fechten / Meisterschaft Fechten / Weltmeister"; class ArrayStacker { protected $_depthArray; protected function _saveDepthKey($key, $depth) { if(!isset($this->_depthArray[$depth])) { $this->_depthArray[$depth] = array(); } if(!in_array($key, $this->_depthArray[$depth])) { $this->_depthArray[$depth][] = $key; return true; } return false; } public function stackArray($string) { $array = $this->_splitString($string); $stackedArray = array(); foreach($array as $row) { $stackedArray = array_merge_recursive($stackedArray, $this->_stack($row)); } return $stackedArray; } /** * Split the whole string into a big array * * @param string $string * @return array */ protected function _splitString($string) { $lines = explode("\n", $string); $i = 0; $array = array(); foreach($lines as $line) { $values = explode(' / ', $line); foreach($values as $v => $value) { $values[$v] = trim($value); // make sure we got no whitespaces } $array[$i] = $values; $i++; } return $array; } /** * Build a stacked array * * @param array $array unstacked array * @return stacked array */ protected function _stack($array) { $stackedArray = array(); $key = array_shift($array); $depth = count($array); // save key to find duplicated if(!$this->_saveDepthKey($key, $depth)) return null; if($depth == 1) { $stackedArray[$key] = $array[0]; // that's a single value } else { $stackedArray[$key] = $this->_stack($array); } return $stackedArray; } } $arrayStacker = new ArrayStacker(); var_dump($arrayStacker->stackArray($string));
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Fatal error: Uncaught TypeError: array_merge_recursive(): Argument #2 must be of type array, null given in /in/Akru9:37 Stack trace: #0 /in/Akru9(37): array_merge_recursive(Array, NULL) #1 /in/Akru9(87): ArrayStacker->stackArray('Football / Germ...') #2 {main} thrown in /in/Akru9 on line 37
Process exited with code 255.
Output for 7.3.12 - 7.3.33, 7.4.0 - 7.4.33
Warning: array_merge_recursive(): Expected parameter 2 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 Warning: array_merge_recursive(): Expected parameter 1 to be an array, null given in /in/Akru9 on line 37 NULL
Output for 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.0 - 7.2.33
Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 NULL
Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17
Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #1 is not an array in /in/Akru9 on line 37 Warning: array_merge_recursive(): Argument #2 is not an array in /in/Akru9 on line 37 NULL
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/Akru9 on line 20
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/Akru9 on line 20
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/Akru9 on line 20
Process exited with code 255.

preferences:
231.94 ms | 401 KiB | 356 Q