mysql — сравнивает значение массива в переполнении стека

Мне нужно сравнить значения массива, один массив взят от внешнего пользователя, а второй массив извлекается из таблицы 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 )

а также
Предположим, у меня есть значения индекса 8,1 и 9 (дважды) в данных таблицы MySQL, чем вывод должен быть этот

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

я также потратил слишком много времени на функцию Array_intersect ….. как это возможно?
Спасибо 🙂

0

Решение

Попытайся

<?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>";
?>
0

Другие решения

ну, может быть, вы можете использовать это:

 $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]
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector