Мы можем разумно использовать explode
и preg_split
здесь, чтобы получить желаемый результат:
$query = "date=20.10.2007&amount=400+date=11.02.2008&amount=1400+date=12.03.2008&amount=1500";
$array = explode("+", $query);
$counter = 0;
echo "Date Amount\n";
foreach($array as $item) {
if ($counter > 0) echo "\n";
$parts = explode("&", $item);
echo preg_split("/=/", $parts[0])[1] . " ";
echo preg_split("/=/", $parts[1])[1];
$counter = $counter + 1;
}
Это печатает:
Date Amount
20.10.2007 400
11.02.2008 1400
12.03.2008 1500
Логика здесь в том, чтосначала мы разбиваем строку запроса на +
, чтобы получить компоненты, похожие на:
date=20.10.2007&amount=400
Затем, внутри цикла по всем таким компонентам, мы снова разделяем на &
, чтобы получить date
и amount
условия. Наконец, каждый из них снова делится на =
, чтобы получить действительные значения.