Поиск ключа в массиве, который удовлетворяет условиям

Я пытаюсь извлечь ключ из массива, который соответствует некоторым критериям, и у меня возникают проблемы с фильтрацией этого массива. Это образец, и массив может содержать гораздо больше элементов. Все они будут иметь одинаковую страну, регион и префикс. То, что может отличаться, это 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 НЕ ПУСТО (если существует). Если ключ, когда статус не пуст, не существует, мне нужно ПОСЛЕДНЕЕ вхождение, где статус пуст.

Большое спасибо!

1

Решение

$index = count($ARRAY) - 1;
foreach($ARRAY as $key=>$val){
if(isset($val['update_status']) && !is_null($val['update_status'])){
$index = $key;
break;
}
}

Это работает?

1

Другие решения

$key = 0;
foreach ($array as $key => $value) {
if ($value["update_status"] != "") {
break;
}
}

$key будет содержать первое вхождение (или последний элемент массива, если он не существует)

(Если цикл foreach заканчивается, $key а также $value все еще есть значения последней итерации, так что никаких проблем.)

1

По вопросам рекламы [email protected]