每个foreach循环后增加变量

时间:2014-09-24 03:48:01

标签: php if-statement foreach auto-increment

我为每个循环导入了一些csv数据。在整个循环在数据的每个ROW上运行后,我需要增加$ i。

数据去,简单9列,测试文件只有2行,但prod文件是500行

ID,LastName,FirstName,Add1,City,State,__ZipCode__,Phone,Email
11,lastnamevalue,firstnamevalue,addressvalue,cityvalue,MA,zip,6phone,email value
11,lastnamevalue2,firstnamevalue2,addressvalue2,cityvalue2,MA,zip2,6phone2,email value2

循环信息

$i=0; 
foreach ( $meta as $key => $value) {

     // If custom filed name is "textfield"
    if ($key == 'FirstName') {
        $meta_array[0]['members_'.$i.'_first_name'] = $value;
        $meta_array[1]['_members_'.$i.'_first_name'] = 'field_53eac4161a811';

    } elseif ($key == 'LastName') {
        $meta_array[0]['members_'.$i.'_last_name'] = $value;
        $meta_array[1]['_members_'.$i.'_last_name'] = 'field_53eac4291a812';

    } elseif ($key == 'Add1') {
        $meta_array[0]['members_'.$i.'_street'] = $value;
        $meta_array[1]['_members_'.$i.'_street'] = 'field_53eb96fc5d7da';

    } elseif ($key == 'City') {
        $meta_array[0]['members_'.$i.'_city'] = $value;
        $meta_array[1]['_members_'.$i.'_city'] = 'field_53eb97335d7dc';

    } elseif ($key == 'State') {
        $meta_array[0]['members_'.$i.'_state'] = $value;
        $meta_array[1]['_members_'.$i.'_state'] = 'field_5421e190161b0';

    } elseif ($key == '__ZipCode__') {
        $meta_array[0]['members_'.$i.'_zip_code'] = $value;
        $meta_array[1]['_members_'.$i.'_zip_code'] = 'field_5421e1acc0d65';

    } elseif ($key == 'Phone') {
        $meta_array[0]['members_'.$i.'_phone'] = $value;
        $meta_array[1]['_members_'.$i.'_phone'] = 'field_53ebb3419d355';

    } elseif ($key == 'Email') {
        $meta_array[0]['members_'.$i.'_email'] = $value;
        $meta_array[1]['_members_'.$i.'_email'] = 'field_5421e1b4c0d66';

    // Create array data to import to the Repeater Field
    }  else {
        $meta_array[$key] = $value;
    }

}

所以我需要$ i在其他if语句之前等于0,然后当它到达最后一封电子邮件时,它需要增加到1并且如果再次为其他每一个保持1,直到最后一个然后增加到2 ......等等......

我想我需要计算其他的if或者其他东西,但是我对循环很糟糕,我可以让它总是0或者在每一行中增加1,所以它最终成为名字1 firstname 2等。< / p>

更新:它用于导入csv数据的wordpress插件... csv被设置为firstname lastname blah blah ...每个值被设置为其实际值,然后anotehr one设置为“field_53eac4161a811”或无论每一个它...所以每个elseif输入两行到数据库。哪个工作正常...(数组出来,因为所有信息匹配,但$ i总是0或每个键/值的增量,而不是每个循环只有一次)。除了覆盖前一个变量,因为$ i变量是每个csv数据行唯一变化的标记...不确定这是否有助于解释它。

下面是应该出来的......它确实如此,除非文件解析下一行teh csv数据时它也会出现0 0 0 0 0 0而不是1 1 1 1 1 1

    Array
    (
    [0] => Array
    (
        [members_0_last_name] => name value
        [members_0_first_name] => first name value
        [members_0_street] => street value
        [members_0_city] => city value
        [members_0_state] => state
        [members_0_zip_code] => zip
        [members_0_phone] => phone
        [members_0_email] => email
    )

[1] => Array
    (
        [_members_0_last_name] => field_53eac4291a812
        [_members_0_first_name] => field_53eac4161a811
        [_members_0_street] => field_53eb96fc5d7da
        [_members_0_city] => field_53eb97335d7dc
        [_members_0_state] => field_5421e190161b0
        [_members_0_zip_code] => field_5421e1acc0d65
        [_members_0_phone] => field_53ebb3419d355
        [_members_0_email] => field_5421e1b4c0d66
    )

[field_53eac3eb1a810] => Array
    (
    )

)

1 个答案:

答案 0 :(得分:-1)

如果只打一次,你是不是要打这些?您可以将增量放在最后一个else块中。