php foreach遍历数组一个数组之后怎么进行拆分

&!doctype html&
&html lang="en"&
&title&Document&/title&
var arr=[1,4,56,7,7,8,8,,9,,9,9,,9,9];
var obj={name:"eval",age:23,sex:"女"};
//只能遍历索引数组。
j=0,len=arr.j&j++){
console.log(arr[j]);
&&//for...in 是遍历对象的健名,或者数组的下标(数组,对象都可用)
&&存在的问题:1)在某些情况下,这段代码可能按照随机顺序遍历数组元素,
& & & & & & &2)数组原型链上的属性都能被访问到&&
Array.prototype.a=123;Array.prototype.foo=function(){};var arr=[2,3];for(let k in arr){
console.log(arr[k]);//2,3,123,function()
}但是我们可以进行过滤处理(也不是很麻烦)for(let k in arr){  arr.hasOwnProperty(k)&& console.log(arr[k]);}
总之:for-in是为普通对象设计的,你可以遍历得到字符串类型的键,因此不适用于数组遍历
for(var i in arr){
console.log(arr[i]);
for(var i in obj){
console.log(i);
}//for …of….遍历数组的键值,不能遍历对象,但是可以遍历类数组对象(也是数组),还可以用来遍历一个字符串(它将字符串视为一系列的Unicode字符来进行遍历:)
for(let value of arr){
console.log(value);
利用for....of....遍历一个字符串
for(var chr of
"abcdefr"){
  console.log(chr);
结果:a,b,c,d,e,f,r
//js中forEach只能遍历数组,不能遍历对象
存在的问题:不能使用break语句中断循环,也不能使用return语句返回到外层函数。 arr.forEach(function(e){
console.log(e);
//js中的forEach只是支持对数组的遍历,不支持对对象的遍历
obj.forEach(function(e){
console.log(e);
//arr.map只能遍历数组
arr.map(function(v,i){
console.log(v,i);
arr.map((v,i)=&(console.log(i,v)));
   var list = new Map().set('a',1).set('b',2).set('c',3);
   console.log(list);
   for (var [key,value] of list) {
    console.log(key + ' =& ' + value);
阅读(...) 评论()求高手指点,foreach遍历三维数组时只能遍历出第一个子级,这是为什么呢?
[问题点数:20分,结帖人Commander50358]
本版专家分:0
结帖率 100%
CSDN今日推荐
本版专家分:10
本版专家分:0
结帖率 100%
本版专家分:10
本版专家分:387673
2017年 总版技术专家分年内排行榜第四2014年 总版技术专家分年内排行榜第四2013年 总版技术专家分年内排行榜第四2012年 总版技术专家分年内排行榜第六
2018年3月 总版技术专家分月排行榜第一2013年5月 总版技术专家分月排行榜第一
2018年4月 总版技术专家分月排行榜第二2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2016年10月优秀大版主
2016年8月论坛优秀版主优秀大版主2015年7月优秀大版主2015年8月优秀大版主2015年8月优秀大版主2015年9月优秀大版主2015年5月优秀大版主2015年4月优秀版主2014年11月论坛优秀版主
本版专家分:387673
2017年 总版技术专家分年内排行榜第四2014年 总版技术专家分年内排行榜第四2013年 总版技术专家分年内排行榜第四2012年 总版技术专家分年内排行榜第六
2018年3月 总版技术专家分月排行榜第一2013年5月 总版技术专家分月排行榜第一
2018年4月 总版技术专家分月排行榜第二2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2016年10月优秀大版主
2016年8月论坛优秀版主优秀大版主2015年7月优秀大版主2015年8月优秀大版主2015年8月优秀大版主2015年9月优秀大版主2015年5月优秀大版主2015年4月优秀版主2014年11月论坛优秀版主
本版专家分:0
结帖率 100%
本版专家分:0
结帖率 100%
本版专家分:2174
结帖率 98.73%
本版专家分:65043
2016年10月优秀小版主
2017年1月 总版技术专家分月排行榜第三
2017年2月 PHP大版内专家分月排行榜第一2017年1月 PHP大版内专家分月排行榜第一
2017年7月 PHP大版内专家分月排行榜第二2017年6月 PHP大版内专家分月排行榜第二2017年5月 PHP大版内专家分月排行榜第二2017年4月 PHP大版内专家分月排行榜第二2017年3月 PHP大版内专家分月排行榜第二2016年12月 PHP大版内专家分月排行榜第二2016年11月 PHP大版内专家分月排行榜第二2016年10月 PHP大版内专家分月排行榜第二2016年9月 PHP大版内专家分月排行榜第二2016年7月 PHP大版内专家分月排行榜第二2016年6月 PHP大版内专家分月排行榜第二2016年3月 PHP大版内专家分月排行榜第二2016年2月 PHP大版内专家分月排行榜第二2016年1月 PHP大版内专家分月排行榜第二2015年11月 PHP大版内专家分月排行榜第二2015年10月 PHP大版内专家分月排行榜第二2015年8月 PHP大版内专家分月排行榜第二2015年7月 PHP大版内专家分月排行榜第二2015年6月 PHP大版内专家分月排行榜第二2015年4月 PHP大版内专家分月排行榜第二2015年3月 PHP大版内专家分月排行榜第二2015年2月 PHP大版内专家分月排行榜第二2015年1月 PHP大版内专家分月排行榜第二2014年12月 PHP大版内专家分月排行榜第二2014年11月 PHP大版内专家分月排行榜第二2014年10月 PHP大版内专家分月排行榜第二2014年9月 PHP大版内专家分月排行榜第二2014年8月 PHP大版内专家分月排行榜第二2014年7月 PHP大版内专家分月排行榜第二2014年6月 PHP大版内专家分月排行榜第二
本版专家分:0
结帖率 100%
匿名用户不能发表回复!|
CSDN今日推荐//这是一个for循环测试
$arr=array('a'=&"a1",'c'=&"caa",'d'=&"da",'e'=&"da"); $str1="1,2,3,4"; $str="是,而且,要,觉"; $strarr=explode(',',$str); $strarr1=explode(',',$str1); for($i=0;$i&count($strarr);$i++){
foreach($arr as $key=&$value){
if($key=='c'){
$arr['c']=$strarr[$i];
foreach($arr as $key=&$value){ if($key=='d'){
$arr['d']=$strarr1[$i];
//echo "hahahahah"."&br&";
//print_r($arr);
//print_r($arr);
}print_r($arr); }
-----------------------------------------------------------------------------------------------------------------
//此处的第一次是上面的第一次遍历后的数组)Array(
[d] =& da)Array(
[d] =& 1 //此处是第二次遍历数组结束,并且外围第一次for循环结束,并且将得到的一个新的数
组,从新的数组开始第二次for外循环。)
第一次结束----------------------------------------------Array(
[c] =& 而且
//此处的第一次是上面的第一次foreach遍历后的数组
[c] =& 而且
[d] =& 1)Array(
[c] =& 而且
第二次-----------------------------------------------Array(
[d] =& 2)Array(
[d] =& 2)Array(
第三次--------------------------Array(
[d] =& 3)Array(
[d] =& 3)Array(
-------------------------------------
阅读(...) 评论()Javascript数组循环遍历之forEach详解
转载 &更新时间:日 17:13:08 & 作者:jack_Meng
本篇文章主要介绍了Javascript 数组循环遍历之forEach详解,对学习forEach有很好的帮助,有需要的可以了解一下。
1.js 数组循环遍历。
数组循环变量,最先想到的就是 for(var i=0;i&i++)这样的方式了。
除此之外,也可以使用较简便的forEach 方式
2.forEach函数。
Firefox 和Chrome 的Array 类型都有forEach的函数。使用如下:
&!--Add by oscar999--&
&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&
&TITLE& New Document &/TITLE&
&META NAME="Author" CONTENT="oscar999"&
var arryAll = [];
arryAll.push(1);
arryAll.push(2);
arryAll.push(3);
arryAll.push(4);
//匿名方式
arryAll.forEach(function(e){
function t1(arg){alert(arg);}
//非匿名方式
arryAll.forEach(t1,arryAll);
但是以上,代码在IE中却无法正常工作。
因为IE的Array 没有这个方法
alert(Array.prototype.forEach);
执行以上这句得到的是& "undefined", 也就是说在IE 中 Array 没有forEach的方法。
3.& 让IE兼容forEach方法
既然IE的Array 没哟forEach方法, 我们就给它手动添加这个原型方法。
//Array.forEach implementation for IE support..
//https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach
if (!Array.prototype.forEach) {
Array.prototype.forEach = function(callback, thisArg) {
if (this == null) {
throw new TypeError(" this is null or not defined");
var O = Object(this);
var len = O.length &&& 0; // Hack to convert O.length to a UInt32
if ({}.toString.call(callback) != "[object Function]") {
throw new TypeError(callback + " is not a function");
if (thisArg) {
while (k & len) {
if (k in O) {
kValue = O[k];
callback.call(T, kValue, k, O);
详细介绍可以参照:
4. 如何跳出循环?
&Js 此种状况的forEach 不能使用continue,& 可以使用如下两种方式:
1. if 语句控制
2. return 语句控制 (return true 或 return false)
其实 return& 类似continue 的作用
以下例子是取出数组中2的倍数和3的倍数的数;
&!--Add by oscar999--&
&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&
&TITLE& New Document &/TITLE&
&META NAME="Author" CONTENT="oscar999"&
if (!Array.prototype.forEach) {
Array.prototype.forEach = function(callback, thisArg) {
if (this == null) {
throw new TypeError(" this is null or not defined");
var O = Object(this);
var len = O.length &&& 0; // Hack to convert O.length to a UInt32
if ({}.toString.call(callback) != "[object Function]") {
throw new TypeError(callback + " is not a function");
if (thisArg) {
while (k & len) {
if (k in O) {
kValue = O[k];
callback.call(T, kValue, k, O);
var arryAll = [];
arryAll.push(1);
arryAll.push(2);
arryAll.push(3);
arryAll.push(4);
arryAll.push(5);
arryAll.push(6);
arryAll.push(7);
var arrySpecial = [];
arryAll.forEach(function(e){
if(e%2==0)
arrySpecial.push(e);
}else if(e%3==0)
arrySpecial.push(e);
使用return 达到以上效果
arryAll.forEach(function(e){
if(e%2==0)
{ www.jb51.net
arrySpecial.push(e);
if(e%3==0)
arrySpecial.push(e);
至于如何写类似break 的效果,目前尚未找到比较好的办法。
个人的看法:不管是java还是C#语法中,forEach就是遍历所有值
有搜索一下,有的说return false 可以达成, 试了一下, return false的效果和return 是一样,也和return ture 是一样的。
下面的测试代码是我自己加上的。
var arryAll = [];
arryAll.push(1);
arryAll.push(2);
arryAll.push(3);
arryAll.push(4);
arryAll.push(5);
arryAll.push(6);
arryAll.push(7);
arryAll.forEach(function(e){
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具foreach遍历后怎么获得返回的数组?【php吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:155,271贴子:
foreach遍历后怎么获得返回的数组?收藏
我的意思是,如$a是一个数组。foreach($a as $key=&$value){//这里是遍历修改$a的值的代码。}然后我怎么print_r($a)才能输出到修改值后的$a?(看到很多例子都是直接在foreach里echo 输出值,却不知道$a遍历后怎么把修改后的值返回到$a里)
php,博为峰IT培训免费试听,0元入学,现在更有多重优惠,仅限今天!博为峰,真正的为年轻人服务的企业,14年间培训15万余名it工程师,成绩斐然!
$a修改后的值不是就在$a中吗
$x=array(array(a=&1,b=&2,c=&3),array(a=&11,b=&2,c=&33),array(a=&1234,b=&33,c=&132));foreach($x as $key=&$value){//这里怎么把所有键为b的值为2的家伙变成值为0?}
楼上说的对
$x2=array(array(a=&1,b=&2,c=&3),array(a=&11,b=&22,c=&33),array(a=&1234,b=&33,c=&132));foreach($x2 as $key=&$value){//echo str_replace(2,0, $x2[$key][*b*]);//问题,这个时候我把值为2的b键都替换成0了,输出也是0了,但是下面dump($x2);还是没变化?}dump($x2);
建议楼主去百度foreach的原理,一看便知。鸟哥的博客里也有相关知识
登录百度帐号

我要回帖

更多关于 foreach循环遍历数组 的文章

 

随机推荐