JSON响应是
[{"id":630770,"t2":"India A","t1":"South Africa A"},
{"id":593454,"t2":"Nottinghamshire","t1":"Kent"},
{"id":593453,"t2":"Northamptonshire","t1":"Warwickshire"},
{"id":593457,"t2":"Sussex","t1":"Worcestershire"},
{"id":593451,"t2":"Hampshire","t1":"Derbyshire"},
{"id":593456,"t2":"Surrey","t1":"Durham"},{"id":593449,"t2":"Essex","t1":"Lancashire"},
{"id":593455,"t2":"Somerset","t1":"Gloucestershire"},
{"id":593452,"t2":"Leicestershire","t1":"Middlesex"},
{"id":593450,"t2":"Glamorgan","t1":"Yorkshire"}]
在php中使用JSON DECODE时,Array是:
Array
(
[0] => stdClass Object
(
[id] => 630770
[t2] => India A
[t1] => South Africa A
)
[1] => stdClass Object
(
[id] => 593454
[t2] => Nottinghamshire
[t1] => Kent
)
[2] => stdClass Object
(
[id] => 593453
[t2] => Northamptonshire
[t1] => Warwickshire
)
[3] => stdClass Object
(
[id] => 593457
[t2] => Sussex
[t1] => Worcestershire
)
[4] => stdClass Object
(
[id] => 593451
[t2] => Hampshire
[t1] => Derbyshire
)
[5] => stdClass Object
(
[id] => 593456
[t2] => Surrey
[t1] => Durham
)
[6] => stdClass Object
(
[id] => 593449
[t2] => Essex
[t1] => Lancashire
)
[7] => stdClass Object
(
[id] => 593455
[t2] => Somerset
[t1] => Gloucestershire
)
[8] => stdClass Object
(
[id] => 593452
[t2] => Leicestershire
[t1] => Middlesex
)
[9] => stdClass Object
(
[id] => 593450
[t2] => Glamorgan
[t1] => Yorkshire
)
)
我希望将结果变为Singal变量而不是Array
$var = "ON Going Matches $n : $t1 VS $t2\n";
它应该返回
ON Going Matches
1: South Africa A VS India A
2: Kent VS Nottinghamshire
3: Warwickshire VS Northamptonshire
4: Worcestershire VS Sussex
5: Derbyshire VS Hampshire
6: Durham VS Surrey
7: Lancashire VS Essex
8: Gloucestershire VS Somerset
9: Middlesex VS Leicestershire
10: Yorkshire VS Glamorgan
我正在使用FOREACH LOOP输出
ON Going Matches
1: South Africa A VS India A
ON Going Matches
2: Kent VS Nottinghamshire
ON Going Matches
3: Warwickshire VS Northamptonshire
ON Going Matches
4: Worcestershire VS Sussex
ON Going Matches
5: Derbyshire VS Hampshire
ON Going Matches
6: Durham VS Surrey
ON Going Matches
7: Lancashire VS Essex
ON Going Matches
8: Gloucestershire VS Somerset
ON Going Matches
9: Middlesex VS Leicestershire
ON Going Matches
10: Yorkshire VS Glamorgan
我怎么能得到这个请帮助我........
答案 0 :(得分:2)
这应该有效:
$json = <<< EOF
[{"id":630770,"t2":"India A","t1":"South Africa A"},
{"id":593454,"t2":"Nottinghamshire","t1":"Kent"},
{"id":593453,"t2":"Northamptonshire","t1":"Warwickshire"},
{"id":593457,"t2":"Sussex","t1":"Worcestershire"},
{"id":593451,"t2":"Hampshire","t1":"Derbyshire"},
{"id":593456,"t2":"Surrey","t1":"Durham"},{"id":593449,"t2":"Essex","t1":"Lancashire"},
{"id":593455,"t2":"Somerset","t1":"Gloucestershire"},
{"id":593452,"t2":"Leicestershire","t1":"Middlesex"},
{"id":593450,"t2":"Glamorgan","t1":"Yorkshire"}]
EOF;
$data = "ON Going Matches\n" . implode("\n", array_map(function($m){static $i=1;
return $i++.': '.$m['t1'].' VS '.$m['t2'];}, json_decode($json, true)) );
echo $data."\n";
<强>输出:强>
ON Going Matches
1: South Africa A VS India A
2: Kent VS Nottinghamshire
3: Warwickshire VS Northamptonshire
4: Worcestershire VS Sussex
5: Derbyshire VS Hampshire
6: Durham VS Surrey
7: Lancashire VS Essex
8: Gloucestershire VS Somerset
9: Middlesex VS Leicestershire
10: Yorkshire VS Glamorgan
答案 1 :(得分:0)
为此,您可以使用array_reduce来获得所需内容。
<?php
$json = '[{"id":630770,"t2":"India A","t1":"South Africa A"},
{"id":593454,"t2":"Nottinghamshire","t1":"Kent"},
{"id":593453,"t2":"Northamptonshire","t1":"Warwickshire"},
{"id":593457,"t2":"Sussex","t1":"Worcestershire"},
{"id":593451,"t2":"Hampshire","t1":"Derbyshire"},
{"id":593456,"t2":"Surrey","t1":"Durham"},{"id":593449,"t2":"Essex","t1":"Lancashire"},
{"id":593455,"t2":"Somerset","t1":"Gloucestershire"},
{"id":593452,"t2":"Leicestershire","t1":"Middlesex"},
{"id":593450,"t2":"Glamorgan","t1":"Yorkshire"}]';
$data = array_reduce(json_decode($json, true),
function(&$str, $item) {
static $i = 0;
$i++;
$str.= $i.". ".$item["t1"]." VS ".$item["t2"]."\n";
return $str;
},"ON Going Matches\n"
);
print $data;
现在$str
包含可以添加到数据库的数据
注意。在php 5.3中可以使用数组映射调用中的闭包。
答案 2 :(得分:0)
从echo "On Going Matches:<br>\n";
foreach
$json = json_decode('[{"id":630770,"t2":"India A","t1":"South Africa A"},{"id":593454,"t2":"Nottinghamshire","t1":"Kent"},{"id":593453,"t2":"Northamptonshire","t1":"Warwickshire"},{"id":593457,"t2":"Sussex","t1":"Worcestershire"},{"id":593451,"t2":"Hampshire","t1":"Derbyshire"},{"id":593456,"t2":"Surrey","t1":"Durham"},{"id":593449,"t2":"Essex","t1":"Lancashire"},{"id":593455,"t2":"Somerset","t1":"Gloucestershire"},{"id":593452,"t2":"Leicestershire","t1":"Middlesex"},{"id":593450,"t2":"Glamorgan","t1":"Yorkshire"}]');
$answer = "On Going Matches:<br>\n";
$index = 0;
foreach($json as $jsonelement)
{
$index++;
$line = $index .": ". $jsonelement->t1 ." VS ". $jsonelement->t2 . " <br>\n";
$answer = $answer . $line;
}
echo $answer;
另一种方法是使用json_decode('your_json_string here', true)
,它将数组中的每个对象转换为关联数组。
$answer = "On Going Matches:<br>\n";
$index = 0;
foreach($json as $jsonelement)
{
$index++;
$line = $index .": ". $jsonelement['t1'] ." VS ". $jsonelement['t2'] . " <br>\n";
$answer = $answer . $line;
}
echo $answer;