<?php class N2Parse { function fromMixed($s) { return explode('|*|', $s); } static function fromArray($s) { return explode('||', $s); } /** * @param $str * @param bool $concat * * @return array */ static function parse($str, $concat = false) { $v = explode("|*|", $str); for ($i = 0; $i < count($v); $i++) { if (strpos($v[$i], "||") !== false) { if ($concat === false) $v[$i] = explode("||", $v[$i]); else $v[$i] = str_replace("||", $concat, $v[$i]); } } //if ($v[count($v) - 1] == '') unset($v[count($v) - 1]); return count($v) == 1 ? $v[0] : $v; } static function parseUnit($value, $concat = '') { if (!is_array($value)) $value = self::parse($value); $unit = $value[count($value) - 1]; unset($value[count($value) - 1]); $r = ''; foreach ($value AS $m) { $r .= $m . $unit . $concat; } return $r; } }