我正在使用XML创建站点地图。当我尝试将多个值放入数组时,我得到第二个变量的未定义索引。
以下示例代码。
我如何收集结果:
$tempArray = array();
switch ($type)
{
case "v":
$dbResult = $db->get_dbResult("Select title,id,vdate from " . DB_PREFIX . "tpV order by id desc " . this_offset($getFirstK));
if ($dbResult)
{
foreach($dbResult as $pResult)
{
$tempArray[]['loc'] = convert_to_URL($pResult->id, $pResult->title);
$tempArray[]['vdate'] = $pResult->vdate;
}
}
break;
我如何打印结果。
array_filter($tempArray = array_map("unserialize", array_unique(array_map("serialize", $tempArray))));
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
foreach($tempArray as $tVars)
{
echo '<url>
<loc>
'.$tVars["loc"].'
</loc>
<lastmod>'.$tVars["vdate"].'</lastmod>
<changefreq>weekly</changefreq>
</url>';
}
echo '</urlset>';
我收到$tempArray[]['vdate']
未定义的索引错误。我有什么遗失的吗?
答案 0 :(得分:1)
$tempArray[]['loc'] = convert_to_URL($pResult->id, $pResult->title);
$tempArray[]['vdate'] = $pResult->vdate;
这里你创建了两个数组,一个是loc键,另一个是vdate,所以两个arrys中的一个必须是未定义的。
修复此错误,只需将两行更改为
即可$tempArray[] = array('loc' => convert_to_URL($pResult->id, $pResult->title), 'vdate' => $pResult->vdate);
这是一个demo
<?php
$array=array();
$array[]['a'] = 'a';
$array[]['b'] = 'b';
echo json_encode($array);
结果:[{"a":"a"},{"b":"b"}]
答案 1 :(得分:0)
您可以设置密钥。
$i = 0;
foreach($dbResult as $pResult)
{
$tempArray[$i]['loc'] = convert_to_URL($pResult->id, $pResult->title);
$tempArray[$i]['vdate'] = $pResult->vdate;
$i++;
}