Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP将Arrray1与Array2进行比较,找出差异。然后用零填充数组1缺少的值_Php_Arrays_Comparison_Array Difference - Fatal编程技术网

PHP将Arrray1与Array2进行比较,找出差异。然后用零填充数组1缺少的值

PHP将Arrray1与Array2进行比较,找出差异。然后用零填充数组1缺少的值,php,arrays,comparison,array-difference,Php,Arrays,Comparison,Array Difference,问题:绘制复选框,将query1中的ID分配给elementId,并将值分配给query2中的复选框。但问题是,与array1相比,查询2并不总是返回完整的9个值。在比较数组1的值之后,我想用零替换查询2中缺少的值 我的做法: 获取两个查询的结果集并 query 1 resultset = $tresult; query 1 resultset = $assignedTiles; $a1 = array(); while ($row = mysql_fetch_row($t

问题:绘制复选框,将query1中的ID分配给elementId,并将值分配给query2中的复选框。但问题是,与array1相比,查询2并不总是返回完整的9个值。在比较数组1的值之后,我想用零替换查询2中缺少的值

我的做法:

获取两个查询的结果集并

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.
试试这个,例如:

$a1 = [ 1 => 'one', 2 => 'two', 3 => 'three',5=>'fayve', 6=>'six'];
$a2 = [ 2 => 'two', 5=>'five'];

print_r( array_diff($a1, $a2) );
$keys = array_keys($a1);
foreach ($keys as $k)
{
    if (!isset($a2[$k])) $a2[$k] = '0';
}
print_r($a2);
输出:

Array
(
    [1] => one
    [3] => three
    [5] => fayve
    [6] => six
)
Array
(
    [2] => two
    [5] => five
    [1] => 0
    [3] => 0
    [6] => 0
)

您正在使用关系数据库。为什么要用php编写交集代码,而mysql却可以为您轻松编写交集代码?RDBME就是为这类事情而设计的。选择IFNULL searchwords,'null to string'作为table_文章中的searchwords@Marc B是RGIT。我理解你的观点,但这是我能想到的。正如你所说,有100种方法可以解决上述问题。太棒了,这正是我想要的。谢谢你抽出时间回答我的问题。