MySQL / PHP - 比较数组中的行列

时间:2017-03-24 17:16:25

标签: php mysql arrays

希望你能解决的问题是将数组中的两个值与行(列)进行比较。

有没有办法只检查那些列匹配,因为我只检查两行,或者是每个循环唯一的方法。

我能够获取所有数据并将其放入数组中,但我使用的if语句在比较时不起作用。

  if ($countReport == 2) {
        while ($rowReport = mysqli_fetch_assoc($resultReport)) {    
        $temp_array[] = $rowReport;
        }
        //if (in_array("Hello, world",array_count_values($temp_array))){
        //echo "working";
        //} 
    }

这是数组中的数据,stats列是我想要比较的,就像两个值都等于“hello world”。

[{"abcID":"8","stats":"Hello, world","time":"23:30:00"},
{"abcID":"7","stats":"Hi, world","time":"23:16:00"},]

2 个答案:

答案 0 :(得分:0)

试试这个

<?
foreach($array as $k1=>$v1)
{
    echo $k1; //returned abcID
    echo $v2 //returned 8
  foreach ($array2 as $k2 => $v2) {
    echo $k2; //returned abcID
    echo $v2 //returned 7
        if($k1==$k2 && $k1=='stats')
        {

                if($v1==$v2)
                $newarray[]=$v1; //added if they are equal or do what u want.

        }
  }
}

?>

答案 1 :(得分:0)

编辑:(这是我的第二个时刻,我从一开始就过度思考这个问题。)

如果只返回两行,则逻辑进程(不需要函数或循环)是进行文字检查:

if($temp_array[0]['stats']!=$temp_array[1]['stats']){
    echo "no match";
}else{
    echo "duplicate";
}

以下单行提供相同的结果,但效率较低......

这是你的条件陈述的单行代码,不需要循环:

示例1:

$temp_array=array(
    array("abcID"=>"8","stats"=>"Hello, world","time"=>"23:30:00"),
    array("abcID"=>"7","stats"=>"Hi, world","time"=>"23:16:00")
);

if(sizeof(array_unique(array_column($temp_array,"stats")))>1){
    echo "no match";
}else{
    echo "duplicate";
}
// displays: no match

示例2:

$temp_array=array(
    array("abcID"=>"8","stats"=>"Hello, world","time"=>"23:30:00"),
    array("abcID"=>"7","stats"=>"Hello, world","time"=>"23:16:00")
);
if(sizeof(array_unique(array_column($temp_array,"stats")))>1){
    echo "no match";
}else{
    echo "duplicate";
}
// displays: duplicate

细分:

sizeof(                                    // count the size of the remaining array
    array_unique(                          // remove duplicates from array
        array_column($temp_array,"stats")  // array of values where 'stats' was the key
    )
)

想想看,可能有几种方法可以给这只猫上皮。

这是另一个:

if(current(array_count_values(array_column($temp_array,"stats")))==1){
    echo "no match";
}else{
    echo "duplicate";
}

我不确定它是否值得继续下去。