精华内容
下载资源
问答
  • PHP循环体内给数组赋值

    千次阅读 2019-10-27 19:25:04
    循环体给数组赋值 一:未初始化数组,直接赋值 <?php $list = [1, 2, 3]; foreach ($list as $value) { if($value != 2){ $data[0] = $value ; } var_dump($data) ; } /** array(1) { [0]=>int(1)...

    循环体中给数组赋值

    一:未初始化数组,直接赋值

    <?php
    
    $list = [1, 2, 3];
    
    foreach ($list as $value) {
        if($value != 2){
            $data[0] = $value ;
        }
    
        var_dump($data) ; 
    }
    
    /**
    array(1) {
      [0]=>int(1)
    }
    array(1) {
      [0]=>int(1)
    }
    array(1) {
      [0]=>int(3)
    }
    */
    

    二:先初始化数组,再赋值

    <?php
    
    $list = [1, 2, 3];
    
    foreach ($list as $value) {
        // 先初始化数组
        $data = [] ; 
    
        if($value != 2){
            $data[0] = $value ;
        }
    
        var_dump($data) ; 
    }
    
    /**
    array(1) {
      [0]=>int(1)
    }
    array(0) {
    }
    array(1) {
      [0]=>int(3)
    }
    [Finished in 0.1s]
    */
    

    比较发现:
    方式一,循环体中没有给数组进行初始化,当$value==2时得到了错误的内容
    整个循环过程中$data 指向了同一个对象,下次循环并没有新建对象

    方式二,每次循环前都进行数组初始化操作,确保数组内容是空的

    展开全文
  • <?... // json_encode($array); <br />?> <br /><html><br /><head><br /><script type="text/javascript"><br /> var readpoint = ($array);... //***注意不要用引号,如果用了json存储的数组就成

    <?php

    $array =array('fds','fdsa','fdsafasd');
    // json_encode($array);

    ?>

    <html>
    <head>
    <script type="text/javascript">
       var readpoint = <?php echo json_encode($array);?>;   //***注意不要用引号,如果用了json存储的数组就成字符串了。另外如果有键名要以对象的形式弹出如readpoint.id
               alert(readpoint[0]);//fds
    </script>
    </head>
    </html>[/code]

    通过JSON(测试成功) 因为JS能识别JSON格式的数据(php跟js的共同点所以这样传值才有效,那xml呢也许可以就算可以也会比较麻烦不提倡。用json就是为了方便否则直接用字符串传也是一样用JS把字符串在还原成数组。)

    如果不用JSON的话,本人也尝试过但没有测试成功。弹出某个元素的时候会出现未定义的错误。(测试失败)

    当然我们也可以不用赋值直接在js里使用PHP数组(测试成功)。 ***注意前提是赋值数组不是某个变量***

    -----------------------------------------------------

    (参考) 如果出现一下问题的话 。本人通过上面方法就可以实现了

    json 是一个很好的数据结构现在已经广泛用在网络数据传输上

    php 自身待了两个和json 相关的函数
    json_encode   和 json_decode

    这两个函数的具体用法 网上有很多相关的文章
    本文主要介绍 用json_encode 时 中文无法转换的解决方案

    本文假设 文件所用的编码为gb2312;

    先写出所需的数组

    <?php
    $json
    = array (
      
    0
    =>
       array (
        
    'id' => '13'
    ,
        
    'name' => '乒乓球'
    ,
       ),
      
    1
    =>
       array (
        
    'id' => '17'
    ,
        
    'name' => '篮球'
    ,
       )
    )
    ?>

    如果直接用函数json_encode

    <?php

        
    echo json_encode($json
    );
    ?>

    结果为:

    <?php
    [{"id":"13","name":null},{"id":"13","name":null
    }]
    ?>


    可以看到汉字没有被转义   都为null

    这是因为json仅仅转义encoding编码

    故上面语句应该先转换编码

    <?php

            
    foreach ($ajax as $key=>$val
    )
             {
                
    $ajax[$key]['name']     = urlencode($val['name'
    ]);
             }
             echo
    json_encode($json
    );

    ?>

    客户端js代码


    <script   type="text/javascript">
    function getsort(obj)
    {
                 $.ajax(
                 {
                     type : "GET",    
                     url : "<?=$this->baseUrl?>/index/getajax",
                     data : "c=" obj.value,
                     success : function(json)
                     {    
                         var json=eval(json);
                    
                         var html = '<select>';
                         $.each(json, function(k)
                         {
                             html   = '<option value="'    json[k]['id']    '">'    decodeURI(json[k]['name'])    '</option>';
                         });
                         html   ="</select>";
                         $('#sort').html(html);
                     }
                 }
                 )
    }
    </script>


    用上面的代码js会报错 说编码不符合标准

    原因是因为js 中decodeURI 仅仅支持utf8 转码
    所以
    php
    代码应该为下面的代码

    <?php

            
    foreach ($ajax as $key=>$val
    )
             {
                
    $ajax[$key]['name']     = urlencode(iconv('gb2312','utf-8',$val['name'
    ]));
             }
             echo
    json_encode($json
    );

    ?>

    -------------------------------------------------------------------

    js读取json数据

    2010-03-22 来自:博客园 字体大小:【
    • 摘要:本文介绍在js中读取json数据

    示例如下:

    <script type="text/javascript" language="javascript">
    var languages = {
         cn:{
         lang:
    'ch',
         name:
    "中文"
    },
    en:{
         lang:
    "英文",
         name:
    "en"
    }
    };
    document.write(languages.cn.name);
    </script>

     

    =====================================================================
    请问有没有详细的js读取json的例子方法

    //根据city获得name
    function getNameByCity(city)
    {
       var cityName =
       {
         "0556":"安庆市",
        "0372":"安阳市",
       };
       return cityName[city];
    }

     

    (参考) =====================================================================
    js 中读取JSON的方法探讨

    js读取JSON的方法我接触到的有两种:
    方法一:函数构造定义法返回
    var strJSON = "{name:'json name'}";//得到的JSON
    var obj = new Function("return" + strJSON)();//转换后的JSON对象
    alert(obj.name);//json name

    方法二:js中著名的eval函数
    var strJSON = "{name:'json name'}";//得到的JSON
    var obj = eval( "(" + strJSON + ")" );//转换后的JSON对象
    alert(obj.name);//json name

    第二种方法需要注意的是,对象表达式{'name':'json name'}必须用“()”扩住,否则
    var strJSON = "{name:'json name'}";
    var obj = eval(strJSON);
    alert(obj.constructor);//String 构造函数
    alert(obj.name);//undefine
    必须把对象表达式扩起来eval执行才能生成一个匿名对象!

    (参考)--------------------------------------------------------------------------

    下面json官方的js,结合ajax来读取解释json结构的数据。

    <script>

    //直接声明json数据结构
    var myJSONObject = {"bindings": [
       {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
       {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
       {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
    ]
    };

    alert(myJSONObject["bindings"][0].method); //这里读取节点bindings中第一个数组位置method的值

    也可以使用循环来读取

    for(var key in myJSONObject){
    alert(myJSONObject[key][0].regex)
    }

    </script>

    下面是json官方的js文件

    <script src="json2.js"></script>

    // rtval的值:{"digg":[{"diggnum":"12","offnum":"0","pageviews":"680","username":"dodo"}]}

    function callback(rtval)

    {

    var myJSONObject2=eval("("+rtval+")");
    alert(myJSONObject2["digg"][0].diggnum)

    }

    </script>

    展开全文
  • Java中对象数组的使用

    千次阅读 2019-06-01 10:07:21
    一点睛 对象可以用数组来存放,通过下面两个步骤来实现。 1声明以类为数据类型的数组变量,...下面介绍4种方式来定义对象数组 方式一:静态方式 Person p1[] = { new Person(), new Person(), new Person(...

    一 点睛

    对象可以用数组来存放,通过下面两个步骤来实现。

    1 声明以类为数据类型的数组变量,并用new分配内存空间给数组。

    2 用new产生新的对象,并分配内存空间给它。

    下面介绍4种方式来定义对象数组

    方式一:静态方式

    Person p1[] = {
             new Person(),
             new Person(),
             new Person()
         };

    方式二:动态初始化化

    Person p2[];
    p2 = new Person[3];
    for(int i=0;i<p2.length;i++)
    {
        p2[i] = new Person();
    }

    方式三:数组元素指向所定义的对象

    Person p3[];
    p3 = new Person[3];
    p3[0] = new Person();
    p3[1] = new Person();
    p3[2] = new Person();

    方式四:创建对象数组,并分配对象空间

    Person p4[] = new Person[3];
    p3[0] = new Person();
    p3[1] = new Person();
    p3[2] = new Person();

    二 对象数组实战

    1 代码

    class Person
    {
         String name = "小明";
         int age = 5;
         public Person()
         {
               
         }
         
         // 构造函数,创建新对象时调用
         public Person( String name, int age )
         {
               this.name = name ;
               this.age = age ;
         }
         
         public String talk()
         {
               return "我是:" + this.name + ",今年:" + this.age +  "岁";
         }
    }
    public class ObjectArray
    {
         public static void main(String[] args)
         {
               // 静态方式
               Person p1[] = {
                         new Person(),
                         new Person(),
                         new Person()
                     };
               
               // 动态方式
               Person p2[];
               p2 = new Person[3];
               for(int i=0;i<p2.length;i++)
               {
                    p2[i] = new Person();
               }
               
               // 数组元素指向所定义的对象
               Person p3[];
               p3 = new Person[3];
               p3[0] = new Person();
               p3[1] = new Person();
               p3[2] = new Person();
               
               // 创建对象数组,并分配内存空间
               Person p4[] = new Person[3];
               p4[0] = new Person();
               p4[1] = new Person();
               p4[2] = new Person();
               for( int i = 0; i  <p4.length; ++i )
               {
                    System.out.println( p4[i].talk( ) ) ;
               }
               
               Person p[] = {
                         new Person( "张三", 25 ),
                         new Person( "李四", 30 ),
                         new Person( "王五", 35 )
                     };
               
               for( int i = 0; i  <p.length; ++i )
               {
                    System.out.println( p[i].talk( ) ) ;
               }
               
         }
         
    }

    2 运行

    我是:小明,今年:5岁
    我是:小明,今年:5岁
    我是:小明,今年:5岁
    我是:张三,今年:25岁
    我是:李四,今年:30岁
    我是:王五,今年:35岁

    三 代码图解

    Person per[];
    per = new Person[3];
    per[0] = new Person();
    per[1] = new Person();
    per[2] = new Person();

    参考

    https://blog.csdn.net/qq_35649064/article/details/83472936

    https://blog.csdn.net/lxxiang1/article/details/82320720

    四 实战

    1 代码

    public class Test {
        public static void main(String[] args) {
            Person[] ps = new Person[3]; // 声明一个对象数组,里面有三个对象
            System.out.println("---------------数组声明后-------------------");
            for (int x = 0; x < ps.length; x++) {
                System.out.print(ps[x] + " "); // 循环输出
            }
            // 创建3个人,并实例化
            Person p1 = new Person("jerry", 18);
            Person p2 = new Person("tom", 20);
            Person p3 = new Person("rose", 25);
            ps[0] = p1; // 实例化第一个元素
            ps[1] = p2; // 实例化第二个元素
            ps[2] =p3; // 实例化第三个元素
            System.out.println("\n---------------对象实例化-------------------");
            for (int x = 0; x < ps.length; x++) {
                System.out.print(ps[x] + " ");
            }
        }
    }
    class Person {
        private String name; // 姓名属性
        private int age; // 年龄属性
        public Person(String name, int age) { // 通过构造方法设置内容
            this.name = name; // 为姓名赋值
            this.age = age; // 为年龄赋值
        }
        @Override
        public String toString() {
            return "Person [name=" + name + ", age=" + age + "]";
        }
    }

    2 运行

    ---------------数组声明后-------------------
    null null null
    ---------------对象实例化-------------------
    Person@6d06d69c Person@7852e922 Person@4e25154f

    3 图解

    展开全文
  • 循环遍历数组/对象

    2019-10-03 23:47:43
    1、for循环 ... 3)小技巧:边赋值边判断,第二个分号中是判断的内容,每次循环时会对其进行判断,当i++大于arr的长度时,arr[i++]=underfined 在JS中0 null underfined '' 都会转换为false,循...

    1、for循环

      1)常规写法

        

     

     

       2) arr.lengh缓存下来:实际上,缓存后比常规写法效率要低

        

     

     

      3)小技巧:边赋值边判断,第二个分号中是判断的内容,每次循环时会对其进行判断,当i++大于arr的长度时,arr[i++]=underfined 在JS中0 null   underfined '' 都会转换为false,循环停止。

        

     注意:for循环使用break、continue和return都可以退出

      1)break:终止循环,只能用在循环语句中

        

     

     

     

     

     

       2)continue:跳出当前循环。继续下一个循环

       

     

     

       3)return 表达式:用于指定函数返回的值,只能用在函数体中。

        执行return false;语句会终止函数的执行,返回到函数的调用处,即使后面还有其他的语句也

        不再执行。

          

    2、for of:ES6推出的用于迭代字符串、数组、类数组对象、map、set等一切可以迭代的结构。

          注意:不能迭代对象

      1)字符串与数组

         

      2)类数组对象 

         

      3)set结构

            

       4)map结构

              

     

     3、for in(ES5):主要用于遍历数组或者对象中的属性,不推荐直接遍历数组,因为遍历的是数组中的索引

            

     

     

     4、forEach():用于遍历数组

         

         注意:存在的问题就是在遍历完所有元素之前不能停止,没有break语句。如果需要强制退出,使用try catch语句,在catch中return

         

     

     

     

     5、map():map()方法返回一个新数组,新数组返回值为原数组元素调用函数处理后的值。(用于对数组的元素进行一些处理)

        和forEach()方法一样,只能用于遍历数组,不能用于对象

       

     6、filter():返回过滤后的数组,不会改变原数组。(用于数组的过滤)

        

     

     7、some():检测数组的元素是否满足指定条件,返回布尔值。不会改变原数组

       

     

     8、every():用于检测数组元素是否都满足条件,返回布尔值,不会改变原数组

      

     9、reduce():

       

     

     

     

     

       

      

    转载于:https://www.cnblogs.com/qqinhappyhappy/p/11613529.html

    展开全文
  • ... 正则取值: 样: [{"lineId":"9cb9042d770547ab927970f99dc9108a","gwId":"SV-K5BU6521","gwName":"box_105"},{"lineId":"1b336475ce60463abb02a4dde55dcb10","gwId":"SV-
  • 首先 先看一个循环数组 乍一看哈,这个可以么 还可以用const 来定义 for (const s of arr) { console.log(s); } 事实上他确实可以正常工作哈 为每个循环创建了一个单独的变量,因此工作正常 for (const elem of...
  • java循环语句及数组

    2018-07-28 10:21:38
    一 循环语句 for for(初始化语句;... 1)初始化语句当前变量进行赋值 2)执行条件表达式语句,如果条件表达式语句成立(true),执行循环体语句 3)循环体语句执行完毕之后,在执行步长语句,再次执行条件表达...
  • 解构:ES6按照一定的模式,从数组对象中提取值,对变量进行赋值 数组的结构赋值 形式: 从数组中提取值,按照对应的位置,对变量赋值 let [a, b, c] = [1, 2, 3] 嵌套数据进行结构 本质上,这种写法属于“模式...
  • 数组

    2019-08-28 17:26:04
    1、数组是具有一定顺序关系的若干对象循环体,组成数组对象称为该数组的元素。 2、每个元素有n个下标的数组称为n维数组。 3、数组的声明 数据类型 标识符[常量表达式1][常量表达式2]… int a[5][3]; 表示a为int...
  • JS基础知识(上)(变量,条件判断语句,循环语句,函数,对象数组) 引入js文件使用script标签,src属性用于书写引用的地址 javaScript会把页面上所有的元素标签看成对象 基于对象和事件驱动且相对安全的客户端...
  • 避免在循环体中创建对象

    千次阅读 2017-04-11 09:23:25
    避免在循环体中声明创建对象,即使该对象占用内存空间不大。  这种情况在我们的实际应用中经常遇到,而且我们很容易犯类似的错误,例如下面的代码:  Java代码  for (int i = 0; i ; ++i) { ...
  • //do...while中循环体至少会执行一次,再判断循环条件,若成立则执行循环体 do { System. out .println(i); } while (ture) //这是一个死循环 { System. out .println(i); } while ( false ) //代码会执行一次 ...
  • do-while循环语句和for以及while循环的最大的区别就是:循环体至少执行一次(条件不满足的情况) 实际开发中:常用的是for循环,其次是while循环,do-while使用的最少,多参见于java源码 class DoWh...
  • ES6 对象的解构赋值

    万次阅读 2018-06-29 14:46:36
    包括数组对象的整体赋值。基本原则如下:数组的元素是按次序排列的,变量的取值由它的位置决定;对象的属性没有次序,变量必须与属性同名,才能取到正确的值。数组的解构赋值:let [x, y]= [1, 2];// x = 1// y = ...
  • 双重循环就是一个循环体里面包含另外一个完整的循环,一个循环里面套着另外一个循环,即双重循环 2、双重循环语法结构 1、for的双重循环 语法: for(循环条件1){ 循环操作1; for(循环条件2){ 循环操作2 } ...
  • GO数组循环

    2020-12-04 14:23:01
    创建数据 var tests = []struct { method string url string expected int }{ {"GET", "/", 200}, ...以上的斜杠为key ,如果写成key 如果循环体没有用到,则会报错: key declared but not used go 对于数
  • JavaScript数组

    2017-03-12 22:39:00
    1. JavaScript数组简介 ① 为什么需要数组 数组可以很方便的用来管理一组数据。例如:我们需要变量来存储一个星期里面的每一天。...③ 如何给数组赋值 分为两种:1)先申明,再赋值;2)申明和赋值一起 1...
  • java循环语句,一维数组

    千次阅读 2018-10-16 16:22:56
    1、实现二分查找算法:有序的数组 public class TestDemo1 { public static int binary(int[] array, int key) {//key为要查找的数 Arrays.sort(array);//正序排列数组 System.out.println(&amp;amp;amp;...
  • 循环
  • 数组的定义方法: 方式一:使用new运算符结合Array()构造函数来创建  var arr = new Array(); 方式二:创建指定长度的数组,()中只有一个整数  var arr = new Array(3);  数组的长度:arr.length,只能统计...
  • console.log('循环体中:'+i); } console.log('循环体外:'+i); */ //const常亮不能被改变 /* const a="jspang"; var a="技术胖"; console.log(a); */ //变量的解构赋值 // let a=0; // let b=1; ...
  • while循环,先判断条件是否成立,再决定是否执行循环体代码,如果第一次条件为false,while循环一次都不执行; do while循环,先执行一次循环体代码,再判断条件是否满足;如果第一次条件为false,循环体代码执行一...
  • 1.1版本的vue.js不存在v-for循环数组或空对象返回undefined的问题 且该版本的vue.js还可以使用$index,$key HTML代码 <div id="box"> <ul> <li v-for="item in myData">{{item}}{{$index}}<...
  • 1.防止循环变量变为全局变量 2.不存在变量提升 (先使用后声明不可以) 3.生命周期为一个{} 块级作用域 const 关键字 声明常量 const 声明的变量只在所处的块级有效 生命周期为一个{} //如果存储的值不需要...
  • 数组赋值其实也是一个方法完成的。 上面的代码会被编译器转换成两个参数的方法: Scala代码 greetStrings.update( 0 ,  "Hello" )   当然你也直接这样写上面的赋值: Scala...
  • JAVA中的循环,输入,排序和一维数组

    千次阅读 2019-04-13 14:50:01
    增强for循环确实遍历数组比较容易,但不能获取其下标来进行其他操作 所以不建议初学者常用增强for循环 而且增强for循环有一些坑,我们来看一下它的原理 Integer i; 定义一个临时变量i Iterator iterator = list.it.....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,713
精华内容 27,085
关键字:

循环体给对象数组赋值