我有一个类似
的字符串$query = "date=20.10.2007&amount=400+date=11.02.2008&amount=1400+date=12.03.2008&amount=1500";
有两个名为date和amount的变量,包含一个值,例如date = 20.10.2007和amount = 400,这两个变量以不同的值重复其本身,并且每个集合(日期和数量)均以“ +”号分隔。现在我要显示这样的字符串:
Date Amount
20.10.2007 400
11.02.2008 1400
12.02.2008 1500
需要帮助
答案 0 :(得分:0)
我们可以在此处明智地使用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
项。最后,将它们分别在=
上拆分以获取实际值。
答案 1 :(得分:0)
非常感谢Tim Biegeleisen的友好指导。在您的帮助下,我使用以下代码进行了此操作:
$str = "date=20.10.2007&amount=400+date=11.02.2008&amount=1400+date=12.03.2008&amount=1500"; $array = explode("+",$str);
$i = 0;
echo nl2br("Date Amount \n");
foreach($array as $item[$i])
{
parse_str($item[$i]);
echo $date;
echo $amount."<br>";
$i++;
}