将电子表格转换为数组并循环并调用函数

时间:2010-12-28 16:48:43

标签: php arrays loops call buddypress

这与在BuddyPress中生成组有关。

我有一个电子表格(在本例中)是一个组名,组描述和slug。

我需要从文件中获取信息,将其转换为数组,然后遍历它并每次调用groups_create_group()。

我可以在bp-groups.php(http://www.nomorepasting.com/getpaste.php?pasteid=35217)中找到该功能。它告诉我你需要填写的所有参数。

我对此很陌生并且正在寻找如何做到这一点。你知道我如何获取这些信息并将其变成数组吗?它通过循环并每次调用groups_create_group()?

如果您有任何关于此的方便链接,我将非常感激。

1 个答案:

答案 0 :(得分:2)

只要您具有可用的groups_create_group功能(即已包含所需文件),您应该能够执行此类操作

<?php

$groups = array();

if (($handle = fopen("groupData.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $group = array('group_id' => 'SOME ID', 'name' => $data[0], 'description' => $data[1], 'slug' => $data[2], 'date_created' => gmdate( "Y-m-d H:i:s" ), 'status' => 'public' );
        $groups[] = $group;
    }   
    fclose($handle);
}

foreach ($groups as $group) {
    groups_create_group($group);
} 

注意,在您提供的粘贴代码中对groups_create_group的调用显式调用另一种方法来清除slug,然后再将其传递给函数。因此,您可能希望将$group变量的赋值更改为:

 $group = array('group_id'    => 'SOME ID', 
                'name'        => $data[0], 
                'description' => $data[1], 
                'slug' => groups_check_slug(sanitize_title(esc_attr($data[2]))), 
                'date_created' => gmdate( "Y-m-d H:i:s" ), 
                'status' => 'public' 
 );