Как проверить, имеет ли значение ключа массива элемент

У меня есть такой массив

Array
(
[0] =>
[
"18.06.2016",
"18.06.2016",
"18.06.2016",
"Test Test",
"Test Name",
"Michael Dean",
"London",
"1",
"980.00",
"",
"",
"875.00",
"875.00",
"0",
"64.81",
"0",
"810.19"]
[1] =>
[
"18.06.2016",
"18.06.2016",
"18.06.2016",
"Tray 1",
"Test Name",
"Adam Richards",
"London",
"1",
"980.00",
"",
"",
"105.00",
"105.00",
"0",
"7.78",
"0",
"97.22"]...

Я хочу проверить, имеет ли значение ключа массива 1, после Лондона или нет?

Как и в первом ключе массива, значение выглядит следующим образом:

…,«Тестовое имя», «Майкл Дин», «Лондон», «1»…

Как я могу это сделать?

-1

Решение

Если порядок всегда один и тот же, вы можете просто пройтись по нему.

foreach ($array as $key => $value) {
if ($value[4] == 'London' && $value[5] == 1) {
echo '$array['.$key.'] has London and 1 as key 4 and 5';
}
}

Хотя вы не назначили ключи для подмассивов, у них все еще есть ключи по умолчанию, и вы можете использовать их, чтобы получить нужные значения.

редактировать

Взглянув на ваш массив, я вижу, что нет логики в порядке клавиш. Вы не сможете найти искомые значения, если не назначите такие ключи, как town, id, date, name им.

Например:

array(
'0' => array(
'name' => 'John Doe',
'town' => 'London',
'active' => 1,
)

);

1

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

Используйте регулярные foreach цикл, чтобы проверить, если London значение сопровождается 1:

// $arr is your initial array
foreach ($arr as $k => $v) {
if ($v[6] == 'London') {
$hasValue = ($v[7] != 1)? "NOT" : "";
echo "Item with key $k has 'London' which is $hasValue followed by 1". PHP_EOL;
}
}

Примерный вывод:

Item with key 0 has 'London' which is  followed by 1
Item with key 1 has 'London' which is  followed by 1
...
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector