【问题标题】:Should this be an Object or Array? [closed]这应该是对象还是数组? [关闭]
【发布时间】:2013-06-22 20:46:44
【问题描述】:

我需要解析这个没有分隔的.txt 数据库,它是按位置。每个字段都有一个开始位置、结束位置和长度。

我将把它插入到 MySQL TABLE 中,但我必须创建布局并处理如何将这些数据定义为数组或对象?

这里是记录布局的链接: http://www.state.nj.us/treasury/taxation/lpt/MODIV-Counties/2013/MODIVLayout.pdf

【问题讨论】:

  • 两者。在我看来,对象数组。 :)
  • 这取决于你。任何一个都可以,但是如果您可以使用某种解析模块,它可能会将数据读入某种对象。如果您只是要立即将其插入数据库,那么您如何将数据临时存储在 php 中并不重要。
  • 不确定是否需要考虑。
  • @Edward PHP 中的对象比数组更新,所以如果这就是现代的意思,那么对象就是答案。但是,数组在这种情况下非常有用(更新不一定更好)。这实际上是一个意见和熟悉程度的问题:您应该使用您感觉最好的那个。在这种情况下,没有具体的理由推荐其他人。

标签: php arrays parsing object


【解决方案1】:

记录将是一个字符串,长度为 700 个字符。您将拥有这些字符串的数组。每个字符串,你应该转换成一个对象或散列。

$record_strings = array(
    'DATADATADATADATA...DATADATADATADATADATADATA',
    'DATADATADATADATA...DATADATADATADATADATADATA',
    'DATADATADATADATA...DATADATADATADATADATADATA',
    'DATADATADATADATA...DATADATADATADATADATADATA',
    'DATADATADATADATA...DATADATADATADATADATADATA',
    'DATADATADATADATA...DATADATADATADATADATADATA',
);
$record_hashes = array_map(function($record_string) {
    return array(
        'COUNTY-DISTRICT' => substr($record_string, 0, 4),
        'BLOCK' => substr($record_string, 4, 9),
        'LOT' => substr($record_string, 13, 9),
        ...
    );
}, $record_strings);

您现在拥有了一个哈希数组,您可以更轻松地使用这些哈希进行操作,例如迭代并插入到数据库中。

【讨论】:

    猜你喜欢
    • 2012-01-19
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    • 2012-09-09
    • 2015-08-29
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多