我的algorythm存在一些问题,无法找到解决方法。我有点生锈的节目,对不起,如果这是一个愚蠢的问题。
假设我有一个类似下面的数组
$records = array(
array(
'weight' => 2135,
'n2' => 'John',
'n1' => 'Jones',
),
array(
'weight' => 3245,
'n2' => 'Sally',
'n1' => 'Smith',
),
array(
'weight' => 5342,
'n2' => 'Sally',
'n1' => 'Jones',
),
array(
'weight' => 5623,
'n2' => 'Peter',
'n1' => 'Doe',
)
);
我想检查数组中是否存在两个变量,例如。我想检查一下" 莎莉" AND " 琼斯"存在于一个事件中,如果它在n1或n2中无关紧要,重要的是它们都在那里。如果它们存在,我想要重量。
否则,如果我搜索,例如" John " AND " 史密斯"并且它们不存在于数组中,我想将此事件推送到数组并为此事件添加权重值。
有没有人知道我该怎么办?我已经阻止并且已经工作了2天了。
感谢。
答案 0 :(得分:0)
循环记录,并检查名称
foreach($records as $record){
if (in_array("Sally", $record)) {
//increase weight
}else{
//push to array
}
}
答案 1 :(得分:0)
Completeley未经测试,可能无法完全按照您的要求行事,但这将使您走上正确的道路。
$contains = FALSE;
$contains = findNames($array, $firstName, $lastName);
if($contains === TRUE)
{
// Add your weight to the array here
} else {
// Do something else or nothing
}
function findNames($array, $firstName, $lastName) {
foreach($array as $arrayValues=> $arrayValue) {
if($arrayValue['n1'] == $firstName || $arrayValue['n1'] == $lastName || $arrayValue['n2'] == $firstName || $arrayValue['n2'] == $lastName) {
return TRUE;
} else {
return FALSE;
}
}
OR:
function findNames($array, $firstName, $lastName) {
if(in_array($firstName, $array) || in_array($lastName, $array))
{
return TRUE;
} else {
return FALSE;
}