【问题标题】:convert every 100th element of an array into comma separated string将数组的每 100 个元素转换为逗号分隔的字符串
【发布时间】:2015-01-19 07:45:29
【问题描述】:

我有一个大小不同的数组,可以是 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”

但我想不通,我会修改我的建议,看看我是否能想通。

【问题讨论】:

  • 一个简单的 foreach($results as $counter => $result){ if (($counter % 100) !== 0) { echo ','; } echo $result->id; } 将允许您测试每 100 个元素

标签: php arrays foreach


【解决方案1】:

基本上跟踪$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,

【讨论】:

    猜你喜欢
    • 2021-12-18
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 2011-06-12
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多