taoCMS是基于php+sqlite/mysql的国内最小(100Kb左右)的功能完善、开源免费的CMS管理系统

PHP扩展中如何遍历数组?(ZEND API)

2012-04-05
/*  * 版权归PHPSalon.com所有,未经许可,严禁任何形式转载  *  * Author: Wenlong Wu  */  前段时间一网友问我在写PHP扩展的时候如何遍历数组呢,现将代码贴出来,并做相应的解释。  PHP_FUNCTION(print_array)  {   zval *z_array; // 外部传入的数组   int count, i;   zval **z_item;   if (FAILURE == zend_parse_parameters(argc TSRMLS_CC, "a", &z_array)) {   return;   }   // 获取数组大小   count = zend_hash_num_elements(Z_ARRVAL_P(z_array));   // 将数组的内部指针指向第一个单元   zend_hash_internal_pointer_reset(Z_ARRVAL_P(z_array));    for (i = 0; i < count; i ++) {   char* key;   int idx;   // 获取当前数据   zend_hash_get_current_data(Z_ARRVAL_P(z_array), (void**) &z_item);   convert_to_string_ex(z_item);   if (zend_hash_get_current_key(Z_ARRVAL_P(z_array), &key, &idx, 0) == HASH_KEY_IS_STRING) {   // KEY为字符串   php_printf("array[%s] = %s", key, Z_STRVAL_PP(z_item));   } else {   // KEY为数字   php_printf("array[%d] = %s", idx, Z_STRVAL_PP(z_item));   }   // 将数组中的内部指针向前移动一位   zend_hash_move_forward(Z_ARRVAL_P(z_array));   }  }  在PHP调用如下:  $arr = array(   'id' => 'ezdevelop',   1 => "test number",   2 => "test number 2",   'name' => 'Wenlong Wu'  );  print_array($arr);  ?>

类别:技术文章 | 阅读:252835 | 评论:0 | 标签:php zend

想收藏或者和大家分享这篇好文章→

“PHP扩展中如何遍历数组?(ZEND API)”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

taoCMS发布taoCMS 3.0.2(最后更新21年03月15日),请大家速速升级,欢迎大家试用和提出您宝贵的意见建议。

捐助与联系

☟请使用新浪微博联系我☟

☟在github上follow我☟

标签云