品类|牛仔裤
sku | 64SA6Z
描述|
颜色|蓝色
尺码| 4
发货编号| 20579
过期日期| 08/10/2014
startDate | 05/12/2014
状态| ACTIVE
数量| 1
成本| 0
零售| 2500
折扣| 0
buyersFee | 200
图片| Array
发货编号| 1
doNotDiscount |
currentPrice | 2700
我有一个搜索,我正在使用他们的POS的API开发本地寄售店。我的代码使用以下代码提取数据:
$search = $_GET['search'];
$data = array('key' => $API_KEY,
/*'consignorId' => '1',*/
'query' => $search,
'includeItemsWithQuantityZero' => 'false');
$data_string = json_encode($data);
$context = stream_context_create(array(
'http' => array(
'method' => "POST",
'header' => "Accept: application/jsonrn".
"Content-Type: application/jsonrn",
'content' => $data_string
)
));
$result = file_get_contents('https://user.traxia.com/app/api/inventory', false, $context);
返回json输出:
{"results":[{"name":"BKE ","category":"Jeans","sku":"64SA6Z","description":"","color":"blue","size":"4","consignorId":"20579","expireDate":"08/10/2014","startDate":"05/12/2014","status":"ACTIVE","quantity":1,"cost":0,"retail":2500,"discount":0,"buyersFee":200,"images":[],"consignmentItem":true,"doNotDiscount":false,"currentPrice":2700},{"name":"BKE","category":"Shorts","sku":"EUTU4Z","description":"","color":"blue","size":"10","consignorId":"687517","expireDate":"08/07/2014","startDate":"05/09/2014","status":"ACTIVE","quantity":1,"cost":0,"retail":1000,"discount":0,"buyersFee":90,"images":[],"consignmentItem":true,"doNotDiscount":false,"currentPrice":1090},
我用这个代码解码:
$jsonData = $result;
$phpArray = json_decode($jsonData, true);
$phpArray = $phpArray['results'];
foreach ($phpArray as $key => $value) {
print_r("<h2>$key</h2>");
foreach ($value as $k => $v) {
print_r("$k | $v <br />");
}
}
返回的页面看起来像(所有结果都是这样):
0
名称| BKE品类|牛仔裤
sku | 64SA6Z
描述|
颜色|蓝色
尺码| 4
发货编号| 20579
过期日期| 08/10/2014
startDate | 05/12/2014
状态| ACTIVE
数量| 1
成本| 0
零售| 2500
折扣| 0
buyersFee | 200
图片| Array
发货编号| 1
doNotDiscount |
currentPrice | 2700
我想把它们排成一张桌子。有没有一种简单的方法可以做到这一点?谢谢!
在循环中添加表结构相当简单-
foreach ($phpArray as $key => $value) {
print_r("<h2>$key</h2>");
echo "<table>";
foreach ($value as $k => $v) {
print_r("<tr><td>$k</td><td>$v </td></tr>");
}
echo "</table>";
}
或者,如果您希望所有这些信息在同一行中(假设有多个项目正在显示):
echo "<table>";
foreach ($phpArray as $key => $value) {
print_r("<tr><td>$key</td>");
foreach ($value as $k => $v) {
print_r("<td>$k</td><td>$v</td>");
}
echo "</tr>";
}
echo "</table>";
你想写这样的东西
<table border="1" cellpadding="8" cellspacing="0" style="border-collapse: collapse">
<!-- border, cellspacing, and cellpadding attributes are not recommended; only included for example's conciseness -->
<thead>
<tr>
<?php
foreach(array_keys($phpArray[0]) as $k) {
echo "<th>$k</th>";
}
?>
</tr>
</thead>
<tbody>
<?php
foreach($phpArray as $key => $values) {
echo '<tr>';
foreach($values as $v) {
echo "<td>" . implode('<br /> ', (array)$v) . "</td>";
}
echo '</tr>';
}
?>
</tbody>
</table>