-1

我有一个这样的数组

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 ",...

我怎样才能做到这一点?

4

2 回答 2

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,
    )

);

于 2016-06-20T07:51:39.810 回答
0

使用常规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
...
于 2016-06-20T07:58:49.720 回答