Php 查找并加载多维数组
我有两组结果 我想比较两者,并将B中的值与A中的值相加(希望有意义) 但我想比较3个标准(水果、颜色和元素) 因此,需要将2条黄线添加到表B中 我想到的解决方案是一个for循环中的重复for循环,但当您访问数千条记录进行比较时,这可能是一个问题 也许有更简单的方法。让我感到困惑的是,表B有一个额外的列 示例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++)
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中存储数组而不是表吗?