仓酷云

标题: PHP网页编程之php之foreach遍历数组 [打印本页]

作者: 谁可相欹    时间: 2015-1-16 22:11
标题: PHP网页编程之php之foreach遍历数组
基础这个工具是个比较笼统的概念,如果你之前学习过c语言,c语言被认为是foreach

(PHP4,PHP5)
Theforeachconstructprovidesaneasywaytoiterateoverarrays.foreachworksonlyonarraysandobjects,andwillissueanerrorwhenyoutrytouseitonavariablewithadifferentdatatypeoranuninitializedvariable.Therearetwosyntaxes:
  1. foreach(array_expressionas$value)statementforeach(array_expressionas$key=>$value)statement
复制代码
Thefirstformloopsoverthearraygivenbyarray_expression.Oneachiteration,thevalueofthecurrentelementisassignedto$valueandtheinternalarraypointerisadvancedbyone(soonthenextiteration,youllbelookingatthenextelement).
Thesecondformwilladditionallyassignthecurrentelementskeytothe$keyvariableoneachiteration.
Itispossibletocustomizeobjectiteration.
Note:
Whenforeachfirststartsexecuting,theinternalarraypointerisautomaticallyresettothefirstelementofthearray.Thismeansthatyoudonotneedtocallreset()beforeaforeachloop.
Asforeachreliesontheinternalarraypointer,changingitwithintheloopmayleadtounexpectedbehavior.
Inordertobeabletodirectlymodifyarrayelementswithintheloopprecede$valuewith&.Inthatcasethevaluewillbeassignedbyreference.
Referencing$valueisonlypossibleiftheiteratedarraycanbereferenced(i.e.ifitisavariable).Thefollowingcodewontwork:
WarningReferenceofa$valueandthelastarrayelementremainevenaftertheforeachloop.Itisrecommendedtodestroyitbyunset().
Note:
foreachdoesnotsupporttheabilitytosuppresserrormessagesusing@.
Youmayhavenoticedthatthefollowingarefunctionallyidentical:
Thefollowingarealsofunctionallyidentical:
Somemoreexamplestodemonstrateusage:
Unpackingnestedarrayswithlist()

(PHP5>=5.5.0)
PHP5.5addedtheabilitytoiterateoveranarrayofarraysandunpackthenestedarrayintoloopvariablesbyprovidingalist()asthevalue.
Forexample:
Theaboveexamplewilloutput:
  1. A:1;B:2A:3;B:4
复制代码
Youcanprovidefewerelementsinthelist()thanthereareinthenestedarray,inwhichcasetheleftoverarrayvalueswillbeignored:
Theaboveexamplewilloutput:
  1. 13
复制代码
Anoticewillbegeneratediftherearentenougharrayelementstofillthelist():
Theaboveexamplewilloutput:
  1. Notice:Undefinedoffset:2inexample.phponline7A:1;B:2;C:Notice:Undefinedoffset:2inexample.phponline7A:3;B:4;C:
复制代码
多个成员之间重复做相同的工作,很容易因为交流沟通的时候没有进行一致性的文档要求而出现不明错误,严重影响开发进度,导致在预定时间内无法完成该项目或者完成的项目跟原先计划所要实现的项目功能不符合。
作者: 愤怒的大鸟    时间: 2015-1-18 22:21
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者: 海妖    时间: 2015-1-25 13:44
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 再现理想    时间: 2015-2-2 22:19
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: 简单生活    时间: 2015-2-8 14:05
当然这种网站的会员费就几十块钱。
作者: 谁可相欹    时间: 2015-3-8 01:12
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
作者: 柔情似水    时间: 2015-3-15 19:20
Ps:以上纯属原创,如有雷同,纯属巧合
作者: admin    时间: 2015-3-22 03:10
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2