我有一个数组$arr
看起来像这样:搜索在数组值和比较/获取下一个和前一个值
array(3) {
[0]=>
array(2) {
["food"]=>
string(5) "Toast"
["age"]=>
string(2) "28"
}
[1]=>
array(2) {
["food"]=>
string(5) "Pizza"
["age"]=>
string(2) "45"
}
[2]=>
array(2) {
["food"]=>
string(5) "Steak"
["age"]=>
string(2) "33"
}
}
我还具有可变$curr_age = 45;
。
现在我正在寻找一种方法来搜索数组,直到找到$arr[$i]["age"] = $curr_age
然后停止。
另外,我如何从下一个&以前的数组(例如Toast和Steak)中获取食物?
对于通过阵列搜索,我有这样的代码:
$i = 0;
foreach($arr as $array){
if($curr_age == $arr[$i]["age"]) {
$next = $arr[$i++]["food"];
$prev = $arr[$i--]["food"];
}
$i++;
}
你大概可以想像,这并不如预期工作,我不知道为什么。有一件事让我感到震惊,事实上foreach
循环实际上只用于增加$i
而$array
从不使用,但我无法弄清楚如何解决这个问题或如何执行上面提到的任务。
我想我已经发现在PHP中没有“内置”的方式来做到这一点,需要额外的功能,但又一次:我不知道该功能需要做什么。我甚至不确定这种说法是否属实。
我已经试过array_search
,然后简单地递增/递减键1,但这并不是因为我相信的两个原因。首先看来array_search
不能处理那种类型的数组&秒,这些密钥可能是不连续的,所以$x++
或$x--
似乎不正确。
一个问题,我认为之前也保持一个递增的指数,只是用在foreach循环中的关键任务,并确保测试的前面和后面的按键确实存在是$ arr。把$ array放在$ arr中,如果条件和语句里面条件是 –
你的问题看起来像看不见的passage.question应该是short.i认为foreach($ arr as $ keys => $ values)like –