Php 检查元素是否在数组中并递增

Php 检查元素是否在数组中并递增,php,arrays,string,Php,Arrays,String,我的算法有一些问题,无法找到解决方法。我对编程有点生疏,如果这是个愚蠢的问题,很抱歉 假设我有一个如下所示的数组 $records = array( array( 'weight' => 2135, 'n2' => 'John', 'n1' => 'Jones', ), array( 'weight' => 3245, 'n2' => 'Sally',

我的算法有一些问题,无法找到解决方法。我对编程有点生疏,如果这是个愚蠢的问题,很抱歉

假设我有一个如下所示的数组

$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',
    )
);
例如,我想检查数组中是否存在两个变量。我想检查一下“Sally和“Jones”是否出现在一次发作中,不管是在n1还是n2中,重要的是它们都在。如果它们存在,我想知道重量

否则,如果我搜索例如“John和“Smith”,但它们不在数组中,我希望将此occurrence推送到数组中,并为此occurrence添加一个权重值

有人知道我怎么做吗?我被封锁了,已经为此工作了2天了


谢谢。

循环浏览记录,并检查姓名

   foreach($records as $record){
        if (in_array("Sally", $record)) {
        //increase weight
        }else{
        //push to array
        }
    }

完全未经测试,可能无法完全满足您的要求,但这将使您走上正确的道路

$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;
    }
}
或:


它并没有真正起作用,因为只有在每一天结束时,我才会知道它是否存在。但如果我加上一面旗帜,它会像一个符咒一样工作@diegodacal我会给你一些提示,因为你还没有展示你的代码。当然,您需要根据自己的需要调整此选项:)
function findNames($array, $firstName, $lastName) {

if(in_array($firstName, $array) || in_array($lastName, $array))
{
    return TRUE;
} else {
    return FALSE;
}