将数组的每个第100个元素转换为逗号分隔的字符串

时间:2015-01-19 07:45:29

标签: php arrays foreach

我有一个大小不一的数组,可以是1到200000之间。

我想循环遍历这个数组,然后将值保存到逗号分隔的字符串中,如果大小大于100,将前100个保存到字符串中,\执行我的操作\返回下一个100继续从数组中的下一个值

$users = $this->_db->get('search_results', array('search_token', '=' , $search_token) );
$results = $users-> results();
$unique = $users->count();

foreach($results as $result){
  print_r($result->id); //print each id.
}

它是我尝试进入字符串的结果中的id值,我现在所做的就是打印。

我认为它应该像

$string = "0,1,2,3,5,5.....99";
dosomething($string);

然后循环更新字符串" 100,101,102,103,104 ...... 145"

但是我无法弄明白,我会修改我的建议,看看能不能弄清楚。

1 个答案:

答案 0 :(得分:0)

基本上跟踪$counter并循环遍历数组,将数组项连接成一个字符串。当你达到你的第100个元素时你的操作(在例子中我将为每个第10个元素添加一个逗号,但想法是相同的)。

$array = array('a','b','c','d','e','f','g','h','i','j','k','l','n','m','o','p','q','r','s','t');

$eleNum = 10; // This is 10 for the sake of example, it can be changed to 100
$counter = 0; // Our counter

$string = ""; // The comma separated string

foreach( $array as $item ) { // For every item in array
    $string .= $item;
    $counter++;
    if( $counter % $eleNum == 0 ) { // If it's out 10th (100th), add comma
        $string .= ",";
        $counter = 0;
    }
}

echo $string;

会给出输出:

abcdefghij,klnmopqrst,