提问人:user2770444 提问时间:12/5/2018 最后编辑:ArtisticPhoenixuser2770444 更新时间:12/5/2018 访问量:520
按顺序在 PHP 数组中查找值
find values in php array in sequence
问:
我正在使用一个由表单输入构造的数组。我需要按顺序查找数组中是否有两个值。如果我使用 in_array它会返回 true,搜索一个值或另一个值,但我需要找到它们是否按顺序排列,因为数组中可能有两个值。例:
[0] => location [1] => Riverside [2] => location [3] => Other [4] => subcat1 [5] => Motorcycle [6] => subcat2 [7] => Other.
如果我使用 array_search 或 in_array,查找“Other”,它会返回 true 并在找到的第一个值处停止,但我需要知道值 subcat2 是否紧跟数组中的“Other”。使用这些值会重新填充表单,并且由于“其他”在数组中出现两次(或更多次),因此它会标记表单中的所有“其他”选项。我想捕获值对。有什么想法吗?
答:
0赞
Maciek
12/5/2018
#1
您可以创建一个函数。
function findpair($initial_array,$value1,$value2){
$found=false;
foreach($initial_array as $key=>$value){
if(isset($initial_array[$key+1])){
if($value1==$value and $initial_array[$key+1]==$value2){$found=true;}
}
}
return $found;
}
findpair($array,'Other','subcat2');
如果需要,可以更改$found以返回第一个找到的值/对的键。这只返回 TRUE 或 FALSE。
评论
1赞
user2770444
12/5/2018
谢谢!这并不完全奏效,但它确实让我走上了正确的轨道,我想我有答案。大帮手!
1赞
user2770444
12/5/2018
投赞成票但没有显示,因为我太新手了!
0赞
user2770444
12/5/2018
也缺少 isset 行中的第二个括号:)
0赞
Maciek
12/5/2018
哈哈,是的,有时我只是编写代码,然后再处理我的错误代码。
0赞
user2770444
12/5/2018
#2
$found='false';
$value1 = 'subcat2';
$value2 = 'Other';
foreach($local_array as $key=>$value){
if($value1==$value && $local_array[$key+1]==$value2){$found='Yes';}
}
echo $found;
此解决方案有效并达到目的
上一个:打印一系列字母
评论
Any ideas?
是的,我有很多,你试过什么。我想你需要遍历数组,跟踪最后一个值(循环的上一次迭代中的值),如果它与当前值匹配,那么当你找到它们时,你对它们做任何事情......