使用以下代码计算值不会将结果转换为我的数组。非常感谢任何对我做错的帮助。
$xml=simplexml_load_file("sitemap.xml");
$arr = array();
foreach($xml->url as $child)
{
if (isset($child->loc)) {
echo "true";
$arr[] = $child->loc;
} else {
echo "error";
echo $child->loc;
}
}
print_r(array_count_values($arr));
答案 0 :(得分:3)
您必须正确转换项目值,否则您将在阵列中存储SimpleXMLElement对象:
$arr[] = (string)$child->loc;
答案 1 :(得分:0)
杰克回答后形成的解决方案。添加此代码以检查重复项。
if(count($arr) != count(array_unique($arr))){
echo "Duplicates";
}
答案 2 :(得分:0)
可能会像这样期待
$xml=simplexml_load_file("sitemap.xml");
echo "<pre>";
var_dump($xml->url->loc[0]);
var_dump($xml->url->loc[1]);
var_dump($xml->url->loc[2]);
echo "</pre>";
$arr = array();
foreach($xml->url as $child)
{
foreach($child as $tmp){
if (isset($tmp)) {
echo "true";
$arr[] = (String)$child->loc;
} else {
echo "error<br/>";
echo $child->loc;
}
}
}
print_r(array_count_values($arr));
<sites>
<url>
<loc>google.com</loc>
<loc>google.com</loc>
<loc>yahoo.com</loc>
</url>
</sites>