$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--
似乎不正确。