我有一個數組$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 –