Мне нужно сравнить значения массива, один массив взят от внешнего пользователя, а второй массив извлекается из таблицы 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 ….. как это возможно?
Спасибо 🙂
Попытайся
<?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>";
?>
ну, может быть, вы можете использовать это:
$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]