数组对比操作怎样做?

fdh457 2012-11-12 02:43:42
要求从数组2中每个数组项中每数字对比数组1,判断在数组1中是否有出现,如出现则返回键名(如0M , 7L),如果出现过比如:在0M中已经找到,那么数组2当前数组项不在比对0M中的数字。。


数组1;

Array
(
[0] => Array
(
[M] => Array
(
[0] => 00
[1] => 10
[2] => 20
[3] => 30
[4] => 40
[5] => 50
[6] => 60
[7] => 70
)

[L] => Array
(
[0] => 80
[1] => 90
[2] => 100
[3] => 110
)

[A] => Array
(
[0] => 120
[1] => 130
[2] => 140
[3] => 150
[4] => 160
[5] => 170
)

[E] => Array
(
[0] => 180
[1] => 190
[2] => 200
[3] => 210
[4] => 220
[5] => 230
[6] => 240
[7] => 250
[8] => 260
[9] => 270
)

)

[1] => Array
(
[M] => Array
(
[0] => 01
[1] => 11
[2] => 21
[3] => 31
[4] => 41
[5] => 51
[6] => 61
[7] => 71
)

[L] => Array
(
[0] => 81
[1] => 91
[2] => 101
[3] => 111
)

[A] => Array
(
[0] => 121
[1] => 131
[2] => 141
[3] => 151
[4] => 161
[5] => 171
)

[E] => Array
(
[0] => 181
[1] => 191
[2] => 201
[3] => 211
[4] => 221
[5] => 231
[6] => 241
[7] => 251
[8] => 261
[9] => 271
)

)

[2] => Array
(
[M] => Array
(
[0] => 02
[1] => 12
[2] => 22
[3] => 32
[4] => 42
[5] => 52
[6] => 62
[7] => 72
)

[L] => Array
(
[0] => 82
[1] => 92
[2] => 102
[3] => 112
)

[A] => Array
(
[0] => 122
[1] => 132
[2] => 142
[3] => 152
[4] => 162
[5] => 172
)

[E] => Array
(
[0] => 182
[1] => 192
[2] => 202
[3] => 212
[4] => 222
[5] => 232
[6] => 242
[7] => 252
[8] => 262
[9] => 272
)

)

[3] => Array
(
[M] => Array
(
[0] => 03
[1] => 13
[2] => 23
[3] => 33
[4] => 43
[5] => 53
[6] => 63
[7] => 73
)

[L] => Array
(
[0] => 83
[1] => 93
[2] => 103
[3] => 113
)

[A] => Array
(
[0] => 123
[1] => 133
[2] => 143
[3] => 153
[4] => 163
[5] => 173
)

[E] => Array
(
[0] => 183
[1] => 193
[2] => 203
[3] => 213
[4] => 223
[5] => 233
[6] => 243
[7] => 253
[8] => 263
[9] => 273
)

)

[4] => Array
(
[M] => Array
(
[0] => 04
[1] => 14
[2] => 24
[3] => 34
[4] => 44
[5] => 54
[6] => 64
[7] => 74
)

[L] => Array
(
[0] => 84
[1] => 94
[2] => 104
[3] => 114
)

[A] => Array
(
[0] => 124
[1] => 134
[2] => 144
[3] => 154
[4] => 164
[5] => 174
)

[E] => Array
(
[0] => 184
[1] => 194
[2] => 204
[3] => 214
[4] => 224
[5] => 234
[6] => 244
[7] => 254
[8] => 264
[9] => 274
)

)

[5] => Array
(
[M] => Array
(
[0] => 05
[1] => 15
[2] => 25
[3] => 35
[4] => 45
[5] => 55
[6] => 65
[7] => 75
)

[L] => Array
(
[0] => 85
[1] => 95
[2] => 105
[3] => 115
)

[A] => Array
(
[0] => 125
[1] => 135
[2] => 145
[3] => 155
[4] => 165
[5] => 175
)

[E] => Array
(
[0] => 185
[1] => 195
[2] => 205
[3] => 215
[4] => 225
[5] => 235
[6] => 245
[7] => 255
[8] => 265
[9] => 275
)

)

[6] => Array
(
[M] => Array
(
[0] => 06
[1] => 16
[2] => 26
[3] => 36
[4] => 46
[5] => 56
[6] => 66
[7] => 76
)

[L] => Array
(
[0] => 86
[1] => 96
[2] => 106
[3] => 116
)

[A] => Array
(
[0] => 126
[1] => 136
[2] => 146
[3] => 156
[4] => 166
[5] => 176
)

[E] => Array
(
[0] => 186
[1] => 196
[2] => 206
[3] => 216
[4] => 226
[5] => 236
[6] => 246
[7] => 256
[8] => 266
[9] => 276
)

)

[7] => Array
(
[M] => Array
(
[0] => 07
[1] => 17
[2] => 27
[3] => 37
[4] => 47
[5] => 57
[6] => 67
[7] => 77
)

[L] => Array
(
[0] => 87
[1] => 97
[2] => 107
[3] => 117
)

[A] => Array
(
[0] => 127
[1] => 137
[2] => 147
[3] => 157
[4] => 167
[5] => 177
)

[E] => Array
(
[0] => 187
[1] => 197
[2] => 207
[3] => 217
[4] => 227
[5] => 237
[6] => 247
[7] => 257
[8] => 267
[9] => 277
)

)

)


数组2
Array
(
[0] => 02
[1] => 192
[2] => 73,83
[3] =>
[4] =>
[5] =>
[6] =>
[7] =>
[8] =>
[9] => 00,01,02,03,04,05,06,10,11,12,13,14,15,16,20,21,22,23,24,25,26,30,31,32,33,34,35,36,40,41,42,43,44,45,46,57
[10] =>
[11] =>
[12] => 71,72,73,74,75,81,82,83,84,85,91,92,93,94,95,101,102,103,104,105,111,112,113,114,115,121,122,123,124,125,131,132,133,134,135,141,142,143,144,145,151,152,153,154,155,161,162,163,164,165,171,172,173,174,175,181,182,183,184,185,191,192,193,194,195,201,202,203,204,205
[13] => 244,254
[14] => 100,103,106,110,113,116,120,123,126,230,233,236,240,243,246,250,251,252,253,254,255,256
)
...全文
144 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
码无边 2012-11-13
  • 打赏
  • 举报
回复
貌似csdn的字体很悲剧啊。
fdh457 2012-11-12
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
噢,漏了 foreach($数组2 as $r) { $t = explode(',', $r); foreach($数组1 as $k1=>item) { foreach($item as $k2=>$v) { if(array_intersect($t, $v)) echo $k1.$k2; } } } ……
这种一次循环几千次,太悲剧了啊,求解啊!
fdh457 2012-11-12
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
噢,漏了 foreach($数组2 as $r) { $t = explode(',', $r); foreach($数组1 as $k1=>item) { foreach($item as $k2=>$v) { if(array_intersect($t, $v)) echo $k1.$k2; } } } ……
$a=array(0=>array('a'=>array('1','2'),'b'=>array('3','4')),1=>array('a'=>array('7','5'),'b'=>array('9','0')),2=>array('a'=>array('6','8'),'b'=>array('9','0'))); $b=array('1','2','3','5'); foreach($b as $r) { $t = explode(',', $r); foreach($a as $k1=>$item) { foreach($item as $k2=>$v) { if(array_intersect($t, $v)) echo $k1.$k2."<br>"; } } } 输出: 0a 0a 0b 1a 0a检索了2次 可以只要有就不在进行搜索不? :在0M中已经找到,那么数组2当前数组项不在比对0M中的数字。。
xuzuning 2012-11-12
  • 打赏
  • 举报
回复
噢,漏了 foreach($数组2 as $r) { $t = explode(',', $r); foreach($数组1 as $k1=>item) { foreach($item as $k2=>$v) { if(array_intersect($t, $v)) echo $k1.$k2; } } }
fdh457 2012-11-12
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
foreach($数组2 as $r) { $t = explode(',', $r); foreach($数组1 as $k1=>item) { foreach($item as $v) { if(array_intersect($t, $v)) echo $k1.$k2; } } }
K2在哪?
xuzuning 2012-11-12
  • 打赏
  • 举报
回复
foreach($数组2 as $r) { $t = explode(',', $r); foreach($数组1 as $k1=>item) { foreach($item as $v) { if(array_intersect($t, $v)) echo $k1.$k2; } } }

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧