У меня есть такой массив
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»…
Как я могу это сделать?
Если порядок всегда один и тот же, вы можете просто пройтись по нему.
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,
)
);
Используйте регулярные 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
...