CakePHP数组合并用于CSV数据映射

时间:2013-02-11 03:10:39

标签: php cakephp

我有一个应用程序读取CSV文件(使用CakeDC CsvImportBehavior),而不是为用户提供一个屏幕,用于将CSV文件中找到的字段映射到数据库表。一切正常。我创建了一个显示“数据库模型”表单字段的视图,其中的选择框用于选择要与该模型行关联的CSV行。保存时有3个数组:

  1. 字段映射数组:

    array(
    'Map' => array(
        'name' => '0',
        'address' => '5',
        'city' => '6',
        'use_city' => '1',
        'state' => '7',
        'use_state' => '1',
        'zip' => '8',
        'use_zip' => '1',
        'details' => '12'
    )
    

  2. CSV标头数组

    array(
    (int) 0 => 'Name',
    (int) 1 => 'Email',
    (int) 2 => 'HR',
    (int) 3 => 'HR Email',
    (int) 4 => 'Company',
    (int) 5 => 'Address',
    (int) 6 => 'City',
    (int) 7 => 'State',
    (int) 8 => 'Zip',
    (int) 9 => 'Phone',
    (int) 10 => 'Number',
    (int) 11 => 'Frequency',
    (int) 12 => 'Details',
    (int) 13 => 'Date Signed'
    

  3. 使用CSV标头作为属性的模型数组(这是需要修改的模型)

    array(
    (int) 0 => array(
        'Marker' => array(
        'Name' => 'Randy Watson',
        'Email' => ' @SBCGlobal.net',
        'HR' => 'Randy Watson',
        'HR_Email' => 'bogusjunk@sbcglobal.net',
        'Company' => 'Secure Financial, Inc.',
        'Address' => '2865 Sombrero Circle',
        'City' => 'San Ramon',
        'State' => 'CA',
        'Zip' => '94583',
        'Phone' => '925-973-1088',
        'Number' => '6',
        'Frequency' => '$60',
        'Details' => '',
        'Date_Signed' => 'Mar 6, 11:10 2011'
        )
    ),
    

    ...

  4. 所以基本上我必须使数组#3的键表示在数组#1中所做的选择,以便它们匹配并且可以通过模型保存 - > save()...非常感谢任何输入。

1 个答案:

答案 0 :(得分:0)

我不确定,也许这有任何帮助: http://dev.mysql.com/doc/refman/5.1/en/load-data.html