coolybin 发表于 2012-4-19 00:27:19

新人,过来学习,帮顶。

网店 发表于 2012-4-19 08:14:46

回复 30# netegg


    曰:就是为了插进数据库 取全数据

netegg 发表于 2012-4-19 08:36:03

回复 32# 网店
那和100有什么关系

网店 发表于 2012-4-19 09:00:38

回复 33# netegg


    参数数量最大支持100个 如能支持2000个 执行一次就可以了 这点问题总要纠结呢。。。。

netegg 发表于 2012-4-19 09:02:50

回复 34# 网店
你这些参数是自定义的还是从数据库提出来的

网店 发表于 2012-4-19 09:04:29

回复 33# netegg


    PHP数组教程(006) 分割数组 array_chunk()

array array_chunk ( array input, int size [, bool preserve_keys] ) array_chunk() 将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少几个。得到的数组是一个多维数组中的单元,其索引从零开始

网店 发表于 2012-4-19 09:08:02

PHP_FUNCTION(array_chunk)
{
      int argc = ZEND_NUM_ARGS(), key_type, num_in;
      long size, current = 0;
      char *str_key;
      uint str_key_len;
      zval *input = NULL;
      zval *chunk = NULL;
      zval **entry;
      HashPosition pos;

      if (zend_parse_parameters(argc TSRMLS_CC, "al|b", &input, &size, &preserve_keys) == FAILURE) {                return;
      }            
      /* Do bounds checking for size parameter. */
      if (size < 1) {
                return;
      }
       //获取数组元素个数
      num_in = zend_hash_num_elements(Z_ARRVAL_P(input));
         //如果分割的个数大于 数组的元素
      if (size > num_in) {
                最小为1
                size = num_in > 0 ? num_in : 1;
      }
      //初始化返回值return_value
      array_init_size(return_value, ((num_in - 1) / size) + 1);
      //数组当前执行的元素指针
      zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(input), &pos);
      while (zend_hash_get_current_data_ex(Z_ARRVAL_P(input), (void**)&entry, &pos) == SUCCESS) {
                /* If new chunk, create and initialize it. */
                if (!chunk) {
                        MAKE_STD_ZVAL(chunk);
                        array_init_size(chunk, size);
                }
                zval_add_ref(entry);
                if (preserve_keys) { //如果保存原来的键值
                         //获取当前指针的key
                         key_type = zend_hash_get_current_key_ex(Z_ARRVAL_P(input), &str_key, &str_key_len, &num_key, 0, &pos);
                        switch (key_type) {
                              case HASH_KEY_IS_STRING://键值是字符串,将key和值添加到chunk里
                                        add_assoc_zval_ex(chunk, str_key, str_key_len, *entry);
                                        break;
                              default:
                                        add_index_zval(chunk, num_key, *entry);
                                        break;
                        }
                } else {//重建数组索引 只将entry数据添加到chunki里
                        add_next_index_zval(chunk, *entry);
                }

                /* If reached the chunk size, add it to the result array, and reset the
               * pointer. */
                if (!(++current % size)) {
                        add_next_index_zval(return_value, chunk);
                        chunk = NULL;
                }
                //移动到下一元素
                zend_hash_move_forward_ex(Z_ARRVAL_P(input), &pos);
      }

      /* Add the final chunk if there is one. */
       //添加到返回值return_value的Hash里
      if (chunk) {
                add_next_index_zval(return_value, chunk);
      }
}

网店 发表于 2012-4-19 09:17:50

本帖最后由 网店 于 2012-4-19 18:29 编辑

回复 35# netegg




参数在数组里

3mile 发表于 2012-4-19 10:37:29

回复 38# 网店
楼主早点把问题说明白也许早就已经解决了.
何必像挤牙膏一样问一句挤一句呢?

#include <array.au3>
Local $Arr

For $i=0 to UBound($Arr)-1;初始化数组
        $Arr[$i]="SZ"&StringFormat('%06d',Random(1,999999,1))
Next

For $i=0 to UBound($Arr)-1 Step 100;是按100步进吗?
        Local $str=''
        For $n=$i to $i+100;步进为1
                If $n> UBound($Arr)-1 Then ExitLoop;避免数组越界
                $str&=$Arr[$n]&","
        Next
        $str=StringTrimRight($str,1)
        MsgBox(0,0,$str)
Next

网店 发表于 2012-4-19 12:00:42

本帖最后由 网店 于 2012-4-19 12:10 编辑

回复 39# 3mile


    解决
另问:
用 InetGet 取得文本如何不被再次覆盖?如何追加到文件尾??

xms77 发表于 2012-4-19 21:08:56

回复 40# 网店
查看一下fileopen()函数的说明就明白鸟

aassddffgg961 发表于 2012-4-20 19:52:51

我是来学习和打酱油的。。。

ooxxgod 发表于 2012-5-9 16:54:27

结合看还是没懂
页: 1 2 [3]
查看完整版本: 已解决如何按数组每间隔100执行循环