欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

网页信息抓取问题(续),麻烦徐版看下

程序员文章站 2022-05-10 15:50:42
...
原帖地址:
http://bbs.csdn.net/topics/390595542 4#

如果完整的页面信息是:
Array(     ......    [83] => Part Information             零件清单    [84] => 序号    [85] => 零件号    [86] => 零件说明    [87] => 需求数量    [88] => 承诺数量    [89] => 实收数量    [90] => 包装数    [91] => 料箱数    [92] => 料箱号    [93] => 实发料箱号    [94] => 实发料箱数    [95] => 实收料箱号    [96] => 实收料箱数    [97] => 备注    [98] => 1    [99] => 12606260    [100] => model    [101] => 480    [102] => 480    [103] =>     [104] => 120    [105] => 4    [106] => 0PTYN027    [107] =>     [108] =>     [109] =>     [110] =>     [111] =>     [112] => 2    [113] => 12615516    [114] => 节气门控制器控制模块    [115] => 360    [116] => 360    [117] =>     [118] => 120    [119] => 3    [120] => 0PTYN007    [121] =>     [122] =>     [123] =>     [124] =>     [125] =>     [126] => Supplier             Signature                           Carrier Signature供应商签字             _____________                承运商签字 _____________    [127] => Supplier Confirm             Time    供应商确认时间 13-09-10 09:01    [128] => Receiver Signature             收货人签字 _______________    [129] => Date             日期 ______________    [130] => *** END OF PAGE ***)


多了从126的单元至130的单元。这样的话array_combine会报warning错误,Both parameters should have an equal number of elements。

如果要完全匹配,如何过滤126-130 单元的内容信息?

回复讨论(解决方案)

array_combine 函数需要参与运算的两个数组的长度一致,如果你不能保证这一点,就不要使用
你的 126-130 单元的内容并不在二维表中,当然需要单独处理

你或许可以
[83] => Part Information
作为二维表的开始
[126] => Supplier
作为二维表的结束

你或许可以
[83] => Part Information
作为二维表的开始
[126] => Supplier
作为二维表的结束

能不能写下范例?键值是不是一定要指定?还是只要值的结果就可以?

如何做,得由你决定
我举例中用 array_combine 只不过告诉你还可以这么做

如何做,得由你决定
我举例中用 array_combine 只不过告诉你还可以这么做
我的意思是指定起始位置和终止位置这个如何做到?是依靠数组的值还是同样需要键值?

如何做,得由你决定
我举例中用 array_combine 只不过告诉你还可以这么做

搞定了。由于最后五行是固定的,用了array_slice函数,再用了个array_diff函数就把后面的5行数据去掉了。非常感谢!