Ошибка: установите флажки и назначьте идентификатор из query1 в elementId и значения, назначенные флажку из query2. Но проблема заключается в том, что запрос 2 не всегда возвращает полные 9 значений по сравнению с массивом1. И я хочу заменить отсутствующие значения в запросе 2 нулями после сравнения значений массива.PHP сравните Arrray1 с Array2 и найдите разницу. Затем заполните отсутствующие значения массива Array1 нулем
Мой подход:
Получить результирующий набор из двух запросов и
query 1 resultset = $tresult;
query 1 resultset = $assignedTiles;
$a1 = array();
while ($row = mysql_fetch_row($tresult)){
$a1[] = $row;
}
$a2 = array();
if (mysql_num_rows($assignedTiles)==0){
//echo " inside if row null";
$a2 = array ('0' => array ('0'),'1' => array ('0'),'2' => array
('0'),'3' => array ('0'),'4' => array ('0'),'5' => array ('0'),
'6' => array ('0'),'7' => array ('0'),'8' => array ('0'));
}else{
while($row = mysql_fetch_row($assignedTiles)){
$a2[] = $row;
}
}
foreach($a1 as $aV){
$aTmp1[] = $aV['0']; //setting array key
}
foreach($a2 as $aV){
$aTmp2[] = $aV['0'];
}
$resultArr = array_diff($aTmp1,$aTmp2);
// getting the difference in both arrays
if($resultArr !=NULL){
foreach($resultArr as $v){
$v = str_replace($resultArr, "0", $aTmp1);
}
}else { echo "did not match"; }
$countVal = count($v);
$i=0;
$i<$countVal;
$i++;
foreach ($v as $tileId => $value){
echo "<td align=center >
<input type='checkbox' id='checkBox$tileId ' value='$value' >
</td>";
}
I'm pretty sure there is a better way to do this. Any ideas or suggestion
would be really appreciated.
вы используете реляционная база данных. почему вы делаете код пересечения в php, когда вы могли бы mysql тривиально сделать это для вас? RDBMES предназначены для такого рода вещей. –
SELECT ** IFNULL ** (поисковые слова, 'null to string') в качестве поисковых запросов FROM 'table_article'; @Marc B является rgiht. – PHPJungle
Я понимаю вашу точку зрения, но это то, что я мог бы придумать. Как вы сказали, существует 100 способов решить вышеупомянутую проблему. – edrupler