我有一个问题,即使重复项在数组中,in_array也不会返回true。在对这个网站进行一些研究之后,我发现许多Windows用户由于看不见的换行符而出现问题\ r \ n等等,但这似乎并非如此,因为在打印每个字符串的长度后,它与之匹配我有什么(没有隐形字符)。尽管如此,我的代码似乎无法将新值与数组中已有的内容相匹配:
$XMLName = "file.xml";
$XMLFile = simplexml_load_file($XMLName);
$categories = array();
$i = 0;
foreach($XMLFile as $ReadFile) {
$cat = $ReadFile->CategoryName;
$IsInArray = in_array($cat, $categories);
if($IsInArray == FALSE) {
$categories[$i] = $cat;
$i++;
}
}
foreach($categories as $category) {
echo $category . "<br />";
}
有没有人知道为什么会这样?
答案 0 :(得分:0)
尝试替换行:
$cat = $ReadFile->CategoryName;
这一个:
$cat = trim($ReadFile->CategoryName->__toString());
并且@Jamil说你应该更好地替换:
$categories[$i] = $cat;
$i++;
只是
$categories[] = $cat;