我对此代码有疑问: 在数组$ p我有字符,我想比较数组的元素,如果我找到不同的元素,我将信息保存在另一个名为$ ora的数组中,但它不工作,有什么问题?非常感谢mych
$uri = 'http://www.site.com';
$output=file_get_contents($uri);
if (preg_match_all('/<td colspan="1"><div class="tbl_EPG_TimesColumn.*?">(.*?)<\/div><\/td>/s', $output, $posts, PREG_PATTERN_ORDER)){
$p=$posts[0];
}
$count=count($p);
$ora = array();
for ($i = 0; $i < $count; $i++) {
if ($p[$i] != $p[$i++]){
$ora = $p;
}
echo $ora." ";
}
编辑:
$计数=计数($ P);
$ ora = array();
for($ i = 0; $ i&lt; $ count-1; $ i ++){
for ($j = 0; $j < $count-1; $j++) {
if ($p[$i] != $p[$i+1]){
$ora[$j] = $p[$i];
}
}
}
$ COUNT2 =计数($ ORA);
for($ j = 0; $ j&lt; $ count2; $ j ++){
echo $ ora [$ j]。“”;
}
我尝试了但它不起作用,有什么不对'??
晚上11点
晚上11点
晚上11点
晚上11点
晚上11点
晚上11点
晚上11点
晚上11点
答案 0 :(得分:1)
我不确定我理解你的问题。
如果你想检查$ p中的每个字符是否相同,你可以这样做:
for ($i = 0; $i < $count-1; $i++) {
if ($p[$i] != $p[$i+1]){
$ora = $p;
}
echo $ora." ";
}
注意$ count应该是$ count-1。还要确保$ count = count($ p)是$ count = strlen($ p)
当然只有我理解你想做什么。
编辑:我自动使用$ i + 1而不是$ i ++,但正如之前的回复正确说明:不要在这里增加$ i!无论如何它将是一个后期增量,因此绝对没必要答案 1 :(得分:0)
那么if永远不会是真的,因为你正在进行后增量,这意味着如果:$p[$i] != $p[$i++]
与$p[$i] != $p[$i]
的意义相同。您可以阅读更多相关信息here。
也不清楚你想要做什么。如果要从阵列中删除重复值,则应使用array_unique。
请注意$ ora是数组,每当if为true时,它将覆盖previus值。正确的方法是将元素添加到$ ora数组中,如下所示:$ora[] = 'new value';