PHP:显示数组结果并搜索3个值

时间:2018-10-25 12:08:57

标签: php arrays search

我有一个数组($ items):http://vilavaleaprahovei.ro/kimea/allMarks.php

我如何搜索是否找到3个值:“ marca”,“ diametru”和“ latime”(不仅是其中的一个或只有两个,还应该全部建立三个)并将其返回?

我当时就是这样:

foreach($items as $key => $value) {
    if(($key['marca'] == "ALCAR STAHLRAD") && ($value['diametru'] == 15) && ($value['latime']== 7)) {
        echo $key['marca'];
        echo $value['diametru'];
        echo $value['latime'];
    } else {
        echo "Not found any product";
    }
}

数组:$ items

Array
(
    [ALCAR STAHLRAD] => Array
        (
            [diametru] => Array
                (
                    [0] => 15
                    [6] => 16
                    [7] => 14
                    [15] => 13
                    [17] => 17
                    [270] => 20
                )

            [latime] => Array
                (
                    [0] => 6
                    [7] => 5
                    [8] => 4
                    [25] => 7
                    [303] => 3
                )

            [pcd] => Array
                (
                    [0] => 4
                    [1] => 5
                    [27] => 6
                    [175] => 3
                )

            [pcd1] => Array
                (
                    [0] => 100
                    [1] => 112
                    [6] => 114
                    [11] => 108
                    [13] => 120
                    [27] => 205
                    [29] => 118
                    [44] => 98
                    [54] => 130
                    [58] => 105
                    [69] => 115
                    [77] => 180
                    [94] => 139
                    [111] => 200
                    [127] => 160
                    [141] => 127
                    [170] => 110
                    [298] => 170
                )

            [et] => Array
                (
                    [0] => 40
                    [1] => 47
                    [2] => 50
                    [3] => 38
                    [5] => 43
                    [8] => 39
                    [13] => 51
                    [15] => 45
                    [16] => 52
                    [21] => 42
                    [22] => 48
                    [27] => 117
                    [28] => 60
                    [31] => 31
                    [32] => 108
                    [33] => 41
                    [35] => 27
                    [38] => 46
                    [40] => 37
                    [45] => 35
                    [48] => 36
                    [51] => 34
                    [54] => 66
                    [66] => 44
                    [68] => 20
                    [71] => 68
                    [77] => 0
                    [92] => 26
                    [97] => 49
                    [98] => 62
                    [99] => 5
                    [101] => 24
                    [111] => 110
                    [118] => 32
                    [120] => 29
                    [126] => 30
                    [135] => 55
                    [157] => 56
                    [169] => 23
                    [175] => 22
                    [178] => 107
                    [190] => 33
                    [200] => 83
                    [223] => 53
                    [232] => 54
                    [264] => 28
                    [272] => 18
                    [274] => -1
                    [324] => 121
                    [327] => 25
                    [409] => 105
                    [458] => 75
                    [465] => 132
                )

            [cb] => Array
                (
                    [0] => 60
                    [1] => 57
                    [6] => 66
                    [7] => 54
                    [11] => 63
                    [13] => 65
                    [15] => 69
                    [18] => 64
                    [20] => 67
                    [27] => 161
                    [29] => 71
                    [34] => 56
                    [44] => 58
                    [54] => 89
                    [59] => 72
                    [69] => 70
                    [71] => 78
                    [77] => 138
                    [94] => 92
                    [98] => 84
                    [99] => 108
                    [111] => 142
                    [130] => 106
                    [179] => 73
                    [215] => 74
                    [298] => 130
                    [362] => 100
                    [366] => 95
                    [379] => 59
                    [509] => 93
                )

        )

    [ENZO] => Array
        (
            [diametru] => Array
                (
                    [0] => 16
                    [2] => 17
                    [3] => 15
                    [10] => 14
                    [13] => 18
                )

            [latime] => Array
                (
                    [0] => 6
                    [1] => 7
                    [10] => 5
                    [34] => 8
                )

            [pcd] => Array
                (
                    [0] => 5
                    [5] => 4
                )

            [pcd1] => Array
                (
                    [0] => 114
                    [5] => 108
                    [7] => 112
                    [9] => 110
                    [10] => 100
                    [12] => 115
                    [21] => 98
                    [29] => 105
                )

            [et] => Array
                (
                    [0] => 48
                    [1] => 40
                    [5] => 46
                    [7] => 45
                    [9] => 41
                    [10] => 35
                    [13] => 50
                    [14] => 16
                    [17] => 15
                    [18] => 32
                    [21] => 28
                    [22] => 38
                    [23] => 44
                    [33] => 42
                    [40] => 24
                    [47] => 37
                    [54] => 25
                    [60] => 47
                )

            [cb] => Array
                (
                    [0] => 72
                    [1] => 71
                    [5] => 70
                    [9] => 65
                    [10] => 60
                    [11] => 57
                    [16] => 63
                    [21] => 58
                    [29] => 56
                    [59] => 66
                )

        )

    [DEZENT] => Array
        (
            [diametru] => Array
                (
                    [0] => 17
                    [1] => 16
                    [6] => 15
                    [24] => 18
                    [48] => 14
                    [77] => 19
                    [132] => 20
                )

            [latime] => Array
                (
                    [0] => 7
                    [6] => 6
                    [21] => 8
                    [65] => 5
                    [101] => 4
                    [132] => 9
                )

            [pcd] => Array
                (
                    [0] => 5
                    [8] => 4
                    [115] => 6
                )

            [pcd1] => Array
                (
                    [0] => 114
                    [3] => 112
                    [4] => 108
                    [8] => 100
                    [12] => 110
                    [21] => 120
                    [24] => 130
                    [25] => 127
                    [81] => 105
                    [93] => 115
                    [103] => 98
                    [115] => 139
                    [131] => 160
                    [152] => 118
                )

            [et] => Array
                (
                    [0] => 48
                    [2] => 38
                    [3] => 35
                    [5] => 53
                    [6] => 47
                    [9] => 40
                    [11] => 50
                    [15] => 45
                    [21] => 30
                    [22] => 32
                    [29] => 43
                    [47] => 28
                    [53] => 46
                    [55] => 44
                    [76] => 55
                    [81] => 41
                    [90] => 42
                    [98] => 37
                    [102] => 54
                    [115] => 20
                    [131] => 60
                    [154] => 49
                    [155] => 0
                    [158] => 31
                    [165] => 51
                    [168] => 68
                    [172] => 15
                    [173] => 25
                    [179] => 39
                    [222] => 16
                    [226] => 34
                    [252] => 52
                    [317] => 18
                    [377] => 29
                    [397] => 33
                    [406] => 36
                    [467] => 57
                    [519] => 27
                    [531] => 22
                    [570] => 23
                    [877] => 24
                    [1221] => 62
                )

            [cb] => Array
                (
                    [0] => 72
                    [3] => 70
                    [5] => 66
                    [6] => 57
                    [8] => 60
                    [12] => 65
                    [19] => 71
                    [81] => 56
                    [94] => 67
                    [103] => 58
                    [115] => 106
                    [140] => 74
                    [168] => 78
                    [170] => 73
                    [221] => 63
                    [293] => 93
                    [346] => 54
                    [635] => 89
                    [1221] => 84
                )

        )

    [DOTZ] => Array
        (
            [diametru] => Array
                (
                    [0] => 17
                    [2] => 15
                    [3] => 18
                    [5] => 19
                    [6] => 16
                    [44] => 20
                )

            [latime] => Array
                (
                    [0] => 7
                    [1] => 8
                    [2] => 6
                    [50] => 9
                )

            [pcd] => Array
                (
                    [0] => 5
                    [2] => 4
                    [35] => 6
                )

            [pcd1] => Array
                (
                    [0] => 112
                    [2] => 108
                    [5] => 120
                    [7] => 114
                    [9] => 100
                    [18] => 105
                    [35] => 139
                    [49] => 127
                    [62] => 98
                    [91] => 115
                    [95] => 130
                    [107] => 165
                )

            [et] => Array
                (
                    [0] => 38
                    [1] => 45
                    [2] => 25
                    [5] => 35
                    [11] => 20
                    [12] => 48
                    [18] => 41
                    [21] => 40
                    [26] => 30
                    [31] => 34
                    [35] => 12
                    [43] => 0
                    [102] => 36
                    [107] => 8
                    [109] => 28
                    [113] => 33
                    [125] => 15
                    [158] => 32
                    [161] => 42
                    [164] => -12
                    [192] => 13
                    [204] => 24
                    [260] => 5
                    [471] => 6
                )

            [cb] => Array
                (
                    [0] => 70
                    [2] => 65
                    [5] => 73
                    [7] => 71
                    [9] => 60
                    [18] => 56
                    [19] => 72
                    [35] => 110
                    [53] => 66
                    [62] => 58
                    [82] => 57
                    [92] => 74
                    [95] => 84
                    [107] => 122
                    [113] => 100
                    [126] => 67
                    [182] => 106
                    [204] => 93
                    [250] => 111
                )

        )

    [AEZ] => Array
        (
            [diametru] => Array
                (
                    [0] => 16
                    [1] => 17
                    [5] => 18
                    [7] => 19
                    [15] => 20
                    [115] => 21
                    [139] => 22
                )

            [latime] => Array
                (
                    [0] => 7
                    [1] => 8
                    [14] => 9
                    [103] => 6
                    [115] => 11
                    [122] => 10
                )

            [pcd] => Array
                (
                    [0] => 5
                    [263] => 4
                )

            [pcd1] => Array
                (
                    [0] => 100
                    [1] => 120
                    [2] => 108
                    [3] => 115
                    [5] => 139
                    [6] => 112
                    [7] => 114
                    [15] => 130
                    [157] => 127
                    [179] => 110
                    [209] => 105
                )

            [et] => Array
                (
                    [0] => 35
                    [1] => 45
                    [2] => 48
                    [3] => 40
                    [5] => 30
                    [13] => 38
                    [14] => 46
                    [15] => 50
                    [22] => 42
                    [27] => 51
                    [29] => 34
                    [30] => 20
                    [35] => 25
                    [44] => 47
                    [56] => 29
                    [63] => 37
                    [67] => 32
                    [73] => 52
                    [82] => 39
                    [88] => 44
                    [99] => 43
                    [100] => 28
                    [104] => 33
                    [107] => 18
                    [109] => 23
                    [135] => 17
                    [151] => 54
                    [162] => 53
                    [171] => 49
                    [179] => 31
                    [183] => 36
                    [189] => 57
                    [237] => 56
                    [296] => 41
                    [381] => 27
                    [433] => 24
                    [485] => 14
                    [593] => 26
                    [648] => 12
                    [740] => 16
                )

            [cb] => Array
                (
                    [0] => 60
                    [1] => 73
                    [2] => 70
                    [5] => 95
                    [7] => 72
                    [8] => 71
                    [14] => 74
                    [23] => 63
                    [27] => 66
                    [30] => 67
                    [42] => 57
                    [69] => 65
                    [209] => 56
                    [236] => 64
                )

        )

)

1 个答案:

答案 0 :(得分:1)

请注意,在您的代码上,您尝试将$key作为数组访问,但这是一个字符串:$key['marca']。数组键不能是数组。

由于您的数组结构,您可能需要这样做(如果我对您的问题很了解)

// The items that you are searching
$marca = 'ALCAR STAHLRAD';
$diametru = 15;
$latime = 7;

// The default is that nothing was found.
$found = false;

// First we check if there's an item with the given $marca
if (array_key_exists($marca, $items)) {
    $item = $items[$marca];

    // Now we check if diametru and latime exists.
    // I stored it on variables to make easier to understand.
    // ----------
    // `in_array()` search for values inside the array.
    // If the value that you are searching is not a item,
    //  but an array key, then use `array_key_exists`.
    $diametruExists = in_array($diametru, $item['diametru']);
    $latimeExists = in_array($diametru, $item['diametru']);

    // If both $diametruExists and $latimeExists are true
    // we set that $found is true.
    if ($diametruExists && latimeExists) {
        $found = true;
    }
}

if ($found) {
    echo $marca;
    echo $diametru;
    echo $latime;    
} else {
    echo "Not found any product";
}

此解决方案的缺点是您无法获得其他值,例如pcd,只需检查给定的组合是否存在。

相关问题