【问题标题】:Compare array value in php比较php中的数组值
【发布时间】:2015-08-23 19:50:35
【问题描述】:

我需要比较数组值,一个数组取自外部用户,第二个数组取自 mysql 表。 代码使用的是

<?php
include('db.php');
$input_array=array();
$input_array=explode("," , $_POST['list']);
print_r($input_array)."<br>";

$array                   = array();



                         $result =mysql_query("SELECT b_no FROM abc");
                         while($fetch_array=mysql_fetch_array($result)){
                         $array[] = $fetch_array['b_no'];
                         }



                        echo count($array)."<br>";
                        echo count($input_array)."<br>";
                         ?>

例如用户输入是(爆炸数组)

Array ( [0] => 627501 [1] => 627502 [2] => 627503 [3] => 627504 [4] => 627505 [5] => 627506 [6] => 627507 [7] => 627508 [8] => 627509 [9] => 627510 ) 

和 假设我在 mysql 表数据中有索引值 8,1 和 9(两次),而不是输出应该是这个

Array ( [0] => 627501 [1] => 627509 [2] => 627510 [3] => 627510)

我在 Array_intersect 函数上也浪费了太多时间.....它怎么可能? 谢谢:)

【问题讨论】:

  • 1) 你想如何比较它们? 2)你想做什么?给我们一个example!
  • 可以使用in_array()函数
  • 是使用了in_array()函数
  • 现在是正确的..谢谢您提出解决方案:(
  • array_intersect 有什么问题? array_intersect($array, $input_array) 输出你想要的(至少在上面的例子中)

标签: php mysql arrays arraylist


【解决方案1】:

试试看

<?php
include('db.php');
$input_array=array();
$input_array=explode("," , $_POST['list']);
print_r($input_array)."<br>";

$array                   = array();



                         $result =mysql_query("SELECT b_no FROM d200_62");
                         while($fetch_array=mysql_fetch_array($result)){
                         $array[] = $fetch_array['b_no'];
                         }

                        for($j=0;$j<10;$j++){
                            for($j=0;$j<11970;$j++){
                                if($array[$j]=$input_array[$i]){
                                    echo $array[$j];

                                }

                        echo count($array)."<br>";
                        echo count($input_array)."<br>";
                         ?>

【讨论】:

    【解决方案2】:

    好吧,也许你可以用这个:

     $dbarray   = array('a1', 'a2', 'a3', 'a4', 'a5', 'a6');
     $userarray = array('a2', 'a3', 'a3', 'a6');
    
     $negativearray = array_diff($dbarray, $userarray);
     $positivearray = array_diff($dbarray, $negativearray);
    
     foreach($positivearray as $chunk){
      echo $chunk.' ['.count(preg_grep('/^'.$chunk.'$/', $userarray)).']<br>';
     }
    

    输出:

    a2 [1]
    a3 [2]
    a6 [1]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多