IT天空

 找回密码
 加入我们

手机号码,快捷登录

搜索

[讨论] 如何理解数组插入数据。

[复制链接]
18960601773 发表于 2019-4-25 23:11:47 | 显示全部楼层 |阅读模式

就如何理解数组插入数据的过程我整整看了两个晚上,
现在就将我理解的过程分析如下。如有错误请指教。
我是卡在;自目标位置开始,所有数据向后移动一个元素。
其实在for $i = ubound($a_Array,1) - 1 to $Range + 1 step - 1我就一直想为什么ubound($a_Array,1)为什么后面要减1,这是因为上一行已经使数组增加一个元素。原数组元素数就要现在的数组元素数减1。
在$a_Array[$i] = $a_Array[$i - 1]我又卡主了。其实这里跟前面所学的赋值很有关系。这一行是表示所有数据向后移动一个元素。然而也可以解释为原数组的6号元素值是现在数组的7号元素值。我觉得这样理解,我更容易理解。


       
        ;使数组增加一个元素
        ReDim $a_Array[UBound($a_Array,1) +1]
       
       
        ;自目标位置开始,所有数据向后移动一个元素
        Local $i
        For $i = UBound($a_Array,1) - 1 To $Range + 1 Step - 1
                $a_Array[$i] = $a_Array[$i - 1]
        Next
       
        ;将待插入数据插入目标位置
        $a_Array[$Range] = $Value
       

最近访问 头像模式 列表模式
Skyfree 发表于 2019-4-26 11:02:59 | 显示全部楼层

活跃 251791| 技术 1310| 互助 1665| 钻石 30764

声明一个包含10个元素的数组,数组索引是0~9。UBound检测的是数组上限(10),不是最后一个元素的索引(9)。

点评

收到,谢谢 那我这一行理解错误了。 其实在for $i = ubound($a_Array,1) - 1 to $Range + 1 step - 1我就一直想为什么ubound($a_Array,1)为什么后面要减1,这是因为上一行已经使数组增加一个元素。原数组元素数就  详情 回复 发表于 2019-4-26 18:13
 楼主| 18960601773 发表于 2019-4-26 18:13:41 | 显示全部楼层

活跃 24167| 技术 0| 互助 0| 钻石 50

Skyfree 发表于 2019-4-26 11:02
声明一个包含10个元素的数组,数组索引是0~9。UBound检测的是数组上限(10),不是最后一个元素的索引(9) ...

收到,谢谢
那我这一行理解错误了。
其实在for $i = ubound($a_Array,1) - 1 to $Range + 1 step - 1我就一直想为什么ubound($a_Array,1)为什么后面要减1,这是因为上一行已经使数组增加一个元素。原数组元素数就要现在的数组元素数减1。
这行应该是这样理解的:
ubound函数检测到的是增加一个元素后的10个数,减1是为了得出最大的数组索引。到目标位置加1,步进值为1。
也就是说  i从6到9之间。
qq441225303 发表于 2019-4-29 10:28:37 | 显示全部楼层

活跃 9867| 技术 18| 互助 18| 钻石 330

本帖最后由 qq441225303 于 2019-4-29 10:38 编辑

你这里很多变量没有赋值  但大致也理解到你想表达什么 不过 你还是理解得不够透彻
UBound不一定要-1  取决于你怎么使用
其实所谓的UBound就是获取一个数组的十进制字符串而已
$a_Array[$i] = $a_Array[$i - 1]  其实就是目前的引索单纯的复上一个引索的数据而已
$a_Array[$Range] = $Value     =号 准确的说不是数据插入 而是为变量赋值  在判断语句的时候 则是否相等(不区分大小写)

点评

$a_Array[$i] = $a_Array[$i - 1] 其实就是目前的引索单纯的复上一个引索的数据而已 $a_Array[$Range] = $Value =号 准确的说不是数据插入 而是为变量赋值 在判断语句的时候 则是否相等(不区分大小写) 感  详情 回复 发表于 2019-4-29 23:29
 楼主| 18960601773 发表于 2019-4-29 23:29:06 | 显示全部楼层

活跃 24167| 技术 0| 互助 0| 钻石 50

qq441225303 发表于 2019-4-29 10:28
你这里很多变量没有赋值  但大致也理解到你想表达什么 不过 你还是理解得不够透彻
UBound不一定要-1  取决 ...

$a_Array[$i] = $a_Array[$i - 1]  其实就是目前的引索单纯的复上一个引索的数据而已
$a_Array[$Range] = $Value     =号 准确的说不是数据插入 而是为变量赋值  在判断语句的时候 则是否相等(不区分大小写)

感谢您的解释。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

18960601773

24167

活跃

0

技术

0

互助
签到任务
最火的业界新闻
  • 1399元的荣耀9X用上7nm处理器 荣耀:给友商
  • 华为nova 5i Pro宣布:麒麟810加持 7月26日
  • 西数发布Ultrastar DC HC330系列企业级10TB
  • 小米专利曝光两款新机外形:滑盖+后置“浴
  • [图]华为Mate 30系列地铁现身:确认刘海设
  • 美国依然不放过华为 将调查华为与朝鲜合作
  • 移动用户去世后号码无法过户引争议 中国移
  • 5分钟4K视频渲染导出仅需4分钟:2019入门款
  • 科创板来袭 小米悄悄扶持了这些中国芯片独
  • 最快进入世界500强的中国互联网企业 小米用
炫酷的硬件Show
  • 振华SUPER FLOWER 铜皇450W 铜牌电源
  • 比小更小,Mini-STX装机
  • 华擎X99E-ITX + 银欣ML06 装机记
  • 最强双路泰坦硬管水冷 制作流程
  • 银欣FT02,双路E5工作站
  • 迟到的定制机箱小钢炮清理灰尘
  • 乔思伯UMX1 Plus,小巧的家用综合主机
  • 分体水冷第二弹-Inwin 805 infinity
  • 第一次DIY硬管水冷~~
  • 樱桃MX6.0 青轴 机械键盘 开箱
有趣的美图分享
  • 食物骑士
  • 这个cosplay真的6
  • 偷懒一时爽,一直偷懒一直爽
  • 我说怎么回事,每次开完家长会回来老爸给我
  • 赤裸裸的诱惑
  • 毫无违和感
  • 爸,你过来帮我! 好,我来了!
  • 北京面向国外游客售卖的T恤
  • 除了屈服,我还能怎么办?
  • 养狗一定要养哈士奇,不要问我为什么
关注官方微信
快速回复 返回顶部 返回列表