Я пытаюсь извлечь ключ из массива, который соответствует некоторым критериям, и у меня возникают проблемы с фильтрацией этого массива. Это образец, и массив может содержать гораздо больше элементов. Все они будут иметь одинаковую страну, регион и префикс. То, что может отличаться, это update_status и активации_date.
[0] => Array
(
[id] => 2
[country] => Country
[region] => Region
[prefix] => 12345
[new_rate] => 0.2000
[update_status] =>
[activation_date] =>
)
[1] => Array
(
[id] => 4
[country] => Country
[region] => Region
[prefix] => 12345
[new_rate] => 0.2000
[update_status] => NEW
[activation_date] => 2014-10-03 03:48:00
)
Что мне нужно найти, так это ПЕРВОЕ вхождение (ключ), где update_status НЕ ПУСТО (если существует). Если ключ, когда статус не пуст, не существует, мне нужно ПОСЛЕДНЕЕ вхождение, где статус пуст.
Большое спасибо!
$index = count($ARRAY) - 1;
foreach($ARRAY as $key=>$val){
if(isset($val['update_status']) && !is_null($val['update_status'])){
$index = $key;
break;
}
}
Это работает?
$key = 0;
foreach ($array as $key => $value) {
if ($value["update_status"] != "") {
break;
}
}
$key
будет содержать первое вхождение (или последний элемент массива, если он не существует)
(Если цикл foreach заканчивается, $key
а также $value
все еще есть значения последней итерации, так что никаких проблем.)