比较元素数组PHP

时间:2014-02-18 18:57:59

标签: php

我对此代码有疑问: 在数组$ 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点

晚上11:00

2 个答案:

答案 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';