我有一个数组($ 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
)
)
)
答案 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
,只需检查给定的组合是否存在。