Php 查找并加载多维数组

Php 查找并加载多维数组,php,Php,我有两组结果 我想比较两者,并将B中的值与A中的值相加(希望有意义) 但我想比较3个标准(水果、颜色和元素) 因此,需要将2条黄线添加到表B中 我想到的解决方案是一个for循环中的重复for循环,但当您访问数千条记录进行比较时,这可能是一个问题 也许有更简单的方法。让我感到困惑的是,表B有一个额外的列 示例 For (x , records in table (A), x++) $found = false; For(i, records in table (B), i++)

我有两组结果

我想比较两者,并将B中的值与A中的值相加(希望有意义)

但我想比较3个标准(水果、颜色和元素)

因此,需要将2条黄线添加到表B中

我想到的解决方案是一个for循环中的重复for循环,但当您访问数千条记录进行比较时,这可能是一个问题

也许有更简单的方法。让我感到困惑的是,表B有一个额外的列

示例

For (x , records in table (A), x++)
    $found = false;
    For(i, records in table (B), i++)
        if(tableA[x]['Fruit'] === tableB[i]['Fruit'])
            if(tableA[x]['Colour'] === tableB[i]['Colour'])
                if(tableA[x]['Element'] === tableB[i]['Element'])
                    $found = true;
                End if
            End if
        End if
    End for
    if(!$found)
        $f = tableA[x]['fruit'];
        $c = tableA[x]['Colour'];
        $e = tableA[x]['Element'];
        tableB[]['Fruit'] = $f;
        tableB[]['Colour'] = $c;
        tableB[]['Element'] = $e; 
        tableB[]['Object'] = "";
    End if
End for

这里有一个小函数可以完成这项工作。但可能还有很长的路要走。但它确实有效

    private function filterResult ($resultArray, $checkArray) {

        // Loop trough the array with the eaxtra values 
        foreach($checkArray as $key => $value) {
            $fruit = $value['FRUIT'];
            $colr= $value['COLOUR'];
            $elem = $value['ELEMENT'];
            $cnt = 0;

            //Loop through array with final result to check if checkvalue exists
            foreach($resultArrayas $keyRA => $valueRA){
                $fruitChk = ($valueCI['FRUIT'] == $fruit ) ? true : false ;
                $colrChk = ($valueCI['COLOUR'] == $colr) ? true : false ;
                $elemChk = ($valueCI['ELEMENT'] == $elem ) ? true : false ;

                //Check on all 3 criteria and if value exist, increment counter
                if($fruitChk && $colrChk && $elemChk){
                    $cnt += 1;
                }
            }

            //If counter is = to zero. append checkArray element to ResultArray
            if($cnt == 0){
                $newdata =  array (
                    'FRUIT' => $value['FRUIT'],
                    'COLOUR' => $value['COLOUR'],
                    'ELEMENT' => $value['ELEMENT'],
                    'OBJECT' => "",
                );
                $resultArray[] = $newdata;
            }
        }

        //return result array
        return $resultArray;
    }

这里有一个小函数可以完成这项工作。但可能还有很长的路要走。但它确实有效

    private function filterResult ($resultArray, $checkArray) {

        // Loop trough the array with the eaxtra values 
        foreach($checkArray as $key => $value) {
            $fruit = $value['FRUIT'];
            $colr= $value['COLOUR'];
            $elem = $value['ELEMENT'];
            $cnt = 0;

            //Loop through array with final result to check if checkvalue exists
            foreach($resultArrayas $keyRA => $valueRA){
                $fruitChk = ($valueCI['FRUIT'] == $fruit ) ? true : false ;
                $colrChk = ($valueCI['COLOUR'] == $colr) ? true : false ;
                $elemChk = ($valueCI['ELEMENT'] == $elem ) ? true : false ;

                //Check on all 3 criteria and if value exist, increment counter
                if($fruitChk && $colrChk && $elemChk){
                    $cnt += 1;
                }
            }

            //If counter is = to zero. append checkArray element to ResultArray
            if($cnt == 0){
                $newdata =  array (
                    'FRUIT' => $value['FRUIT'],
                    'COLOUR' => $value['COLOUR'],
                    'ELEMENT' => $value['ELEMENT'],
                    'OBJECT' => "",
                );
                $resultArray[] = $newdata;
            }
        }

        //return result array
        return $resultArray;
    }

先显示你的代码。好的,等一下,我几分钟后发布一些东西。我还在计划,但会放下一些伪代码。也许这个函数会帮助你:?你能展示一下你是如何用PHP而不是表来存储数组的吗?先展示一下你尝试过的代码。好的,等等,几分钟后我会发布一些东西。我仍在计划,但会放下一些伪代码。也许这个函数会帮助您:?您能展示一下如何在PHP中存储数组而不是表吗?