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;
}