精华内容
下载资源
问答
  • Oracle数组 遍历结果集 不用游标

    千次阅读 2018-12-14 16:34:21
    下面的查询语句返回多条记录,into re,而re只是接收一条记录,所以报错。   declare v_str varchar2(500); type red is record (  v_id integer,  v_name varchar2(30) ); re red; begin v_str := '...

    下面的查询语句返回多条记录,into re,而re只是接收一条记录,所以报错。
     

    declare
    v_str varchar2(500);
    type red is record
    (
     v_id integer,
     v_name varchar2(30)
    );
    re red;
    begin
    v_str := 'select id,name from a1 ';
    execute immediate v_str into re;
    for i in 1..re.count loop
    dbms_output.put_line(i.v_id||''||i.v_name);
    end loop;
    end;
     

    应该将re声明为red类型的数组,加下面:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    declare

    type emp_type is table of emp%rowtype index by binary_integer;

    emp_rec emp_type;

    begin

         select * bulk collect into emp_rec from emp;

         for in 1..emp_rec.count loop

             dbms_output.put_line('empno='||emp_rec(i).empno||'; ename='||emp_rec(i).ename||'; job='||emp_rec(i).job||

                                  '; mgr='||emp_rec(i).mgr);         

         end loop;

    end;

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    declare 

    v_str varchar2(500); 

    type red is table of a1%rowtype index by binary_integer; 

    re red; 

    cur sys_refcursor;

    i number:=1;

    begin 

    v_str := 'select id,name from a1 '

    open cur for v_str;

    loop

    fetch cur into re(i);

    exit when cur%notfound;

    i:=i+1;

    end loop;

    close cur;

     

    for in 1..re.count loop 

    dbms_output.put_line(re(j).id||''||re(j).name); 

    end loop; 

    end

     

    如果execute immediate执行的是结果集的话可以用
    execute immediate v_sql bulk collect into 集合变量

    declare 
    type red is table of a1%rowtype index by binary_integer; 
    re red; 
    begin 
    execute immediate 'select id,name from a1 ' bulk collect into re; 
    for j in 1..re.count loop 
    dbms_output.put_line(re(j).id||''||re(j).name); 
    end loop; 
    end; 

     

    将原来的record 变成了表。 
    type 名字 is record  只能放1条记录

    type 名字 is record  是存放单行多列的数据

    declare
    v_str varchar2(500);
    type red is table of a1%rowtype index by binary_integer;
    re red;
    begin
    v_str := 'select id,name from a1 ';
    execute immediate v_str bulk collect into re;
    for i in re.first..re.count loop
    dbms_output.put_line(re(i).id||''||re(i).name);
    end loop;
    end;

     

    参考:https://bbs.csdn.net/topics/320130350

     

     

    展开全文
  • 二级数组遍历有一个坑。二级遍历wx:for循环的时候,需要注意。(代码如下)JS代码:data: {groups: [[{title: '狼图腾',cover: '../../img/mineBG.png'},{title: '狼图腾',cover: '../../img/mineBG.png'},],[{title:...

    小程序中的遍历循环类似于angularJS的遍历。

    二级数组遍历有一个坑。二级遍历wx:for循环的时候,需要注意。(代码如下)

    JS代码:

    data: {

    groups: [

    [

    {

    title: '狼图腾',

    cover: '../../img/mineBG.png'

    },

    {

    title: '狼图腾',

    cover: '../../img/mineBG.png'

    },

    ],

    [

    {

    title: '狼图腾',

    cover: '../../img/mineBG.png'

    },

    ],

    [

    {

    title: '狼图腾',

    cover: '../../img/mineBG.png'

    },

    ]

    ],

    },

    遍历出不同的数组,然后渲染不同组的cell

    {{}}

    {{}}

    MARK:

    二级循环的时候,wx:for="item",这种写法是错误的。

    title{{cell.title}}

    {{group.footer}}

    微信小程序(wx:for)遍历对象

    最近在折腾微信小程序,遇到这么一个情况:后端返回一个key-value的对象数据,需要遍历对象的key-value,然后渲染到视图中.就像下面这样: { '2018-1-9':{ address: ' ...

    微信小程序之使用wx:for遍历循环

    效果图如下: 实现代码如下:type.js: // pages/type/type.js Page({ /** * 页面的初始数据 */ data: { types: "" }, ...

    微信小程序中在swiper-item中遍历循环添加多个数据内容(微信小程序交流群:604788754)

    在小程序中为了实现一个中添加多个内容重复的标签,那就需要使用wx:for循环.如果按小程序的简易教程,循环加在block中,而swiper-item放在里面.所有 ...

    微信小程序用setData修改数组或对象中的一个属性值

    在page中有如下数组 data: { info:[ { name:"yuki", tou:"../img/head.jpg", zGong:130, gMon ...

    微信小程序用setData给数组对象赋值

    假如现在要给数组marker中的对象属性赋值 data: { marker: [ { latitude: ' ' , longitude: ' ' } ] },   在方法中的写法为   fetchJ ...

    微信小程序 setData动态设置数组中的数据

    setdata传递动态数据值必须为对象(只能是key:value) 语法如下 this.setData({ filter: 1212 }) 如果setdata要传递数组呢? 首先相到的是 this.s ...

    微信小程序:如何判断数组中的条数?

    可以 可以在 {{}} 内进行简单的运算,包括三元运算符.逻辑判断.算 ...

    微信小程序——修改data里面数组某一个值

    比如我现在有个data数据如下: data: { playIndex: null, courseList: [{ videoId: '0', isPlaying: false, }, { videoI ...

    微信小程序用setData修改数组或对象中的一个属性值,超好用,最简单的实现方法,不容错过!大神们 都 在 看 的方法!!!

    在page中 data: { info: [{ name: "yuki", tou: "../img/head.jpg", zGong: 130, gMoney ...

    随机推荐

    Oracle---------sql 中取值两列中值最大的一列

    1.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列. select (case when a>b then a else b ...

    php的特性

    PHP的特性包括: 1. PHP 独特的语法混合了 C.Java.Perl 以及 PHP 自创新的语法. 2. PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比 ...

    app发布流程详解

    https://developer.apple.com 1. 点击 Member Center 2. 创建应用ID 3. 创建项目 4. 在AppStore创建对应的应用 5. 创建授权文件 6. 配 ...

    给节点设置tag【从零開始cocos3.0final 】

    在cocos中通过tag来管理节点是非经常常使用的:以下介绍一个关于在cocos中使用tag的实例: typedef enum{ tag1 }Tag; 这里能够使用枚举类型,来为多个节点设置tag: ...

    (转)java中/r与/n还有/r/n的区别

    场景:在学习spring实战,以及工作中进行写文件时候,经常遇到java中的换行问题,发现有的书上的介绍和实际使用并不一致.现在才算是搞清楚! 通过文本对比,断言应该返回正确的结果!但是事与愿违,最终 ...

    Codeforces 437 D. The Child and Zoo 并查集

    题目链接:D. The Child and Zoo 题意: 题意比较难懂,是指给出n个点并给出这些点的权值,再给出m条边.每条边的权值为该条路连接的两个区中权值较小的一个.如果两个区没有直接连接,那么 ...

    hbase 过滤器 rowfilter

    HBase为筛选数据提供了一组过滤器,通过这个过滤器可以在HBase中的数据的多个维度(行,列,数据版本)上进行对数据的筛选操作,也就是说过滤器最终能够筛选的数据能够细化到具体的一个存储单元格上(由行 ...

    使用Spring ThreadPoolTaskExecutor实现多线程任务

    我们为何使用多线程,之前已经有讲过了,为了更快的处理多个任务,分割任务,或者调用多个毫无关联的第三方服务 其实spring就提供了ThreadPoolTaskExecutor这个类来实现线程池,线程池 ...

    shell中十种实现自加的方法

    shell中十种实现自加的方法 let "n = $n + 1" : $((n = $n + )) ((n = n+)) n=$(($n + )) : $[ n = $n + ] ...

    【Loadrunner】【浙江移动项目手写代码】代码备份

    vuser_init(){        lr_start_transaction("login"); web_url("10.78.224.136:8080" ...

    展开全文
  • 1、分支语句

    1、数组

    索引数组:索引值是整数
    关联数组:索引值是字符串

    2、数组的定义

    1、以直接赋值的方式声明
    $数组名[下标]=资料内容


    $数组名[关联字符串(键值)]=资料内容

    <?php
    $val[0]="zhangsan";
    $val[1]="lisi";
    $val2['name']="wanger";
    $val2['age']=33;
    
    $val3[]='fujian';
    $val3[]='beijing';
    $val3[]='jiangxi';
    
    foreach ($val3 as $v){
    	echo $v.'<br>';
    }
    
    echo $val3[2];
    echo '<br>';
    $val4[]='fujian';
    $val4[10]='beijing';
    $val4[]='jiangxi';
    echo $val4[11];
    ?>
    

    2、以array()语言结构新建数组
    $数组名=array(key1=>value1,key2=>value2,key1=>value2)

    $数组名=array(value1,value2,value2)

    $数组名=array(value1,key2->value2,value2)

    范例略

    3、简化写法
    $数组名=[value1,value2,value3]

    3、多维数组的声明

    一位数组元素的位置以匿名的形式声明
    $数组名=array(array(value11,value12,…),array(value21,value22,…)

    $数组名=【[value11,value12,…],[value21,value22,…]】

    $数组名=array(
    ‘一维数组名’=>array(value1,value2,…),
    ‘一维数组名’=>array(value21,value22,…),
    ‘一维数组名’=>array(value31,value32,…),
    )

    4、数组遍历

    1、for语句遍历
    使用了count对数组计数

    <?php
    $myarray=['zhangsan','lisi','wanger'];
    for($i=0;$i<count($myarray); $i++){
    	echo $myarray[$i].'<br/>';
    }
    ?>
    

    2、list(),each(),while遍历
    each()已过时,不建议用

    <?php
    $myarray=['zhangsan','lisi','wanger'];
    while(list($k,$v)=each($myarray)){
    	echo $v.'<br>';
    }
    ?>
    

    list()函数接受一个数组,但不同于其他函数传参,list函数传参使用等号=,将一个数组赋值个这个函数

    <?php
    $myarray=['zhangsan',34,'beijing'];
    list($name,$age,$address)=$myarray;
    echo $name."--".$age.'--'.$address;
    ?>
    

    3、foreach语句遍历
    两种结构

    foreach (数组名 as $k=>$v)foreach (数组名 as $v)
    
    $myarray=['zhangsan',34,'beijing'];
    foreach ($myarray as $k=>$v){
    	echo $k.'--'.$v.'<br>';
    }
    foreach ($myarray as $v){
    	echo $v.'<br>';
    }
    ?>
    

    5、使用数组内部指针控制函数遍历数组

    这些函数的参数只有一个,就是数组本身

    • current:取得目前指针位置的所指向元素
    • key:读取目前指针所指向资料的索引值
    • next:将数组中的内部指针移动到下一个单元格
    • pre:将数组的内部指针倒回一位
    • end:将数组的内部指针指向最后一个元素
    • reset:将目前指针无条件移到第一个索引位置
    <?php
    $myarray=array(
    	"id"=>1,
    	"name"=>"zhangsan",
    	"company"=>"fengray",
    	"address"=>"beijing",
    	"tel"=>"5070",
    	"email"=>"zhangsna@12.com",
    );
    
    echo '第一个元素:'.key($myarray).'--'.current($myarray).'<br>';
    next($myarray);
    next($myarray);
    echo '第三个元素:'.key($myarray).'--'.current($myarray).'<br>';
    prev($myarray);
    echo '第二个元素:'.key($myarray).'--'.current($myarray).'<br>';
    end($myarray);
    echo '第六个元素:'.key($myarray).'--'.current($myarray).'<br>';
    reset($myarray);
    echo '第一个元素:'.key($myarray).'--'.current($myarray).'<br>';
    ?>
    

    6、预定义数组

    在全局范围内生效,不用使用global关键字

    $_SERVER
    $_ENV
    $_GET
    $_POST
    $_REQUEST
    $_FILES
    $_COOKIE
    $_SESSION
    $GLOBALS

    略,需要去查手册知道具体每个数组的意思,

    7、数组的相关处理函数–数组的键值操作函数

    1、array_values()获取键值数组
    返回数组的值作为一个数组

    <?php
    $myarray=array(
    	"id"=>1,
    	"name"=>"zhangsan",
    	"company"=>"fengray",
    	"address"=>"beijing",
    	"tel"=>"5070",
    	"email"=>"zhangsna@12.com",
    );
    
    $newArray=array_values($myarray);
    foreach ($newArray as $value){
    	echo $value.'<br>';
    }
    ?>
    

    2、array_keys()获取键名数组
    返回数组的键作为一个数组

    <?php
    $myarray=array(
    	"id"=>1,
    	"name"=>"zhangsan",
    	"company"=>"fengray",
    	"address"=>"beijing",
    	"tel"=>"5070",
    	"email"=>"zhangsna@12.com",
    );
    
    $newArray=array_keys($myarray);
    foreach ($newArray as $value){
    	echo $value.'<br>';
    }
    ?>
    

    3、array_reverse()反序数组
    数组顺序反转并创建新数组

    <?php
    $myarray=array(
    	"id"=>1,
    	"name"=>"zhangsan",
    	"company"=>"fengray",
    	"address"=>"beijing",
    	"tel"=>"5070",
    	"email"=>"zhangsna@12.com",
    );
    foreach ($myarray as $value){
    	echo $value.'<br>';
    }
    $newArray=array_reverse($myarray);
    foreach ($newArray as $value){
    	echo $value.'<br>';
    }
    ?>
    

    4、in_array()搜索键值
    in_array(数组中搜索的值,数组名,true|false)

    <?php
    $myarray=array(
    	"id"=>1,
    	"name"=>"zhangsan",
    	"company"=>"fengray",
    	"address"=>"beijing",
    	"tel"=>"5070",
    	"email"=>"zhangsna@12.com",
    );
    echo in_array("fengray", $myarray,true)
    ?>
    

    5、array_flip()反转键值
    反转键值

    <?php
    $myarray=array(
    	"id"=>1,
    	"name"=>"zhangsan",
    	"company"=>"fengray",
    	"address"=>"beijing",
    	"tel"=>"5070",
    	"email"=>"zhangsna@12.com",
    );
    $newArray=array_flip($myarray);
    foreach ($myarray as $k=>$v){
    	echo $k.'--'.$v.'<br>';
    }
    
    foreach ($newArray as $k=>$v){
    	echo $k.'--'.$v.'<br>';
    }
    ?>
    

    8、数组的相关处理函数–统计数组个数及唯一性

    1、count函数计数

    <?php
    $myarray=array(
    	"id"=>1,
    	"name"=>"zhangsan",
    	"company"=>"fengray",
    	"address"=>"beijing",
    	"tel"=>"5070",
    	"email"=>"zhangsna@12.com",
    );
    echo count($myarray);
    ?>
    

    2、array_count_value()统计数组中所有值出现的次数
    生成新数组,其中键名为原数组中不重复的值,键值为出现的次数

    <?php
    $myarray=array(
    	"id"=>1,
    	"name"=>"zhangsan",
    	"company"=>"fengray",
    	"name"=>"fengray",
    	"address"=>"beijing",
    	"tel"=>"5070",
    	"email"=>"zhangsna@12.com",
    );
    $newArray=array_count_values($myarray);
    foreach ($newArray as $k=>$v){
    	echo $k.'---'.$v.'<br>';
    }
    

    3、array_unique()删除数组重复值
    删除数组中重复值,并返回没有重复值的新数组

    <?php
    $myarray=array(
    	"id"=>1,
    	"name"=>"zhangsan",
    	"company"=>"fengray",
    	"name"=>"fengray",
    	"address"=>"beijing",
    	"tel"=>"5070",
    	"email"=>"zhangsna@12.com",
    );
    $newArray=array_unique($myarray);
    foreach ($newArray as $k=>$v){
    	echo $k.'---'.$v.'<br>';
    }
    ?>
    

    9、数组的相关处理函数–使用回调函数处理数组的函数

    1、array_filter()按照自定义函数过滤数组中的值
    包含两个参数
    第一个参数是被过滤的数组
    第二个参数是用来过滤数组的自定义工具函数,用双引号传入函数名

    执行过程
    实际执行过程就是,取被过滤数组的每一个元素,进入自定义工具函数中,经过处理后,按自定义函数的逻辑返回true或false,true,则将当前值保留在新数组中,false则不保留,最后生成新数组。

    格式:
    array_filter(数组名,“自定义工具函数名”);

    <?php
    $myarray=[1,2,3,4,5,6,7,8,9,10];
    function myfun($element){
    	if($element%2==0){//过滤偶数
    		return true;
    	}
    }
    
    $newArray=array_filter($myarray,"myfun");
    
    foreach ($newArray as $value){
    	echo $value.'<br>';
    }
    ?>
    

    2、array_walk()对数组的每个元素应用回调函数

    两个必选参数,一个可选参数

    • 第一个参数是被遍历的数组
    • 第二个参数是用来处理数组元素的自定义函数(回调函数),自定义函数应当接受两个参数,第一个参数是数组值,第二个参数是数组键名
    • 第三个参数是可选的参数,也是传给自定义函数的第三个参数。

    格式
    array_walk(被遍历函数,“自定义函数名”,自定义函数的第三个参数)

    <?php
    $myarray=array(
    	"name"=>"zhangsan",
    	"age"=>45,
    	"address"=>"beijing",
    	"email"=>"zhangsan@126.com"
    );
    
    function myfun($value,$key){
    	echo "here is value of ".$value." and hre is key of ".$key."<br/>";
    }
    
    $newArray=array_walk($myarray,"myfun");
    ?>
    

    打印出:
    here is value of zhangsan and hre is key of name
    here is value of 45 and hre is key of age
    here is value of beijing and hre is key of address
    here is value of zhangsan@126.com and hre is key of email

    带有三个参数的例子

    <?php
    $myarray=array(
    	"name"=>"zhangsan",
    	"age"=>45,
    	"address"=>"beijing",
    	"email"=>"zhangsan@126.com"
    );
    
    function myfun($value,$key,$sententce){
    	echo "here is value of ".$value.$sententce.$key."<br/>";
    }
    
    $newArray=array_walk($myarray,"myfun"," and here is the key of ");
    ?>
    

    打印:
    here is value of zhangsan and here is the key of name
    here is value of 45 and here is the key of age
    here is value of beijing and here is the key of address
    here is value of zhangsan@126.com and here is the key of email

    3、array_map()同上,但可以处理多个数组
    处理多个数组,将回调函数作用在给定数组的元素上,并且返回自定义作用后的新数组。
    array_map是任意参数列表函数,回调函数接受的参数数目,应该和传递个array_map()函数的数组数目一直。

    两个参数

    • 第一个参数是自定义回调函数的名称
    • 第二个参数是需要处理的数组

    处理一个数组的时候

    function fun1($v){
    	if ($v==="Oracle"){
    		return "Rracle";
    	}
    	return $v;
    }
    $myarray=array("linux","Apache","MySql","PHP");
    $newArray=array_map("fun1",$myarray);//将数组挨个遍历放入自定义函数中处理生成新的数组
    
    print_r($newArray);
    
    
    ?>
    

    打印:
    Array ( [0] => linux [1] => Apache [2] => MySql [3] => PHP )

    处理2个数组的时候

    <?php
    
    function fun1($a,$b){
    	if ($a===$b){
    		return "same";
    	}
    
    	return "diffrent";
    }
    $arraya=array("linux","Apache","MySql","PHP");
    $arrayb=array("MacOS","Apache","Oracle","PHP");
    
    $newArray=array_map("fun1",$arraya,$arrayb);//遍历数组的元素,将其作为自定义函数的参数进行处理处理生成新的数组
    
    print_r($newArray);
    
    
    ?>
    

    打印:

    Array ( [0] => diffrent [1] => same [2] => diffrent [3] => same )

    回调函数为null的时候的时候
    自定义的回调函数为null的时候则将,多个数组拼接成一个多维数组

    <?php
    $arraya=array("linux","Apache","MySql","PHP");
    $arrayb=array("MacOS","Apache","Oracle","PHP");
    
    $newArray=array_map(null,$arraya,$arrayb);//将数组挨个遍历放入自定义函数中处理生成新的数组
    
    print_r($newArray);
    
    
    ?>
    

    打印:
    Array ( [0] => Array ( [0] => linux [1] => MacOS ) [1] => Array ( [0] => Apache [1] => Apache ) [2] => Array ( [0] => MySql [1] => Oracle ) [3] => Array ( [0] => PHP [1] => PHP ) )

    10、数组的排序函数-概述

    • sort:小到大
    • resort:大到小
    • usort:自定义排序
    • asort小到大并保持索引
    • uasort:大到小并保持索引
    • ksort:键名排序,保留原来的键
    • uksort:大到小逆向排序,保留原来的键
    • natsort自然顺序算法排序
    • natcasesort:不区分大小写的自然顺序算法排序
    • array_mulsisort:多个数组或多维数组排序

    11、数组的排序函数

    1、简单的数组排序函数sort(),resort()
    格式
    sort(排序数组,flag)
    resort(排序数组,flag)反序

    两个参数
    第一个是排序的数组,
    第二个参数是排序方式flag,可以为如下值
    SORT_REGULAR:自动识别
    SORT_NUMRIC
    SORT_STRING
    SORT_LOCALE_STRING

    不会生成新的数组

    <?php
    $myarr=[3,5,62,3,"hello",56,78,9];
    
    sort($myarr);
    print_r($myarr);
    ?>
    

    2、根据键名对数组排序ksort(),kresort()

    <?php
    $myarr=[3,5,62,3,"hello",78,9];
    
    ksort($myarr);
    print_r($myarr);
    ?>
    

    3、根据键值对数组排序asort(),aresort()

    <?php
    $myarr=[3,5,62,3,"hello",78,9];
    
    asort($myarr);
    print_r($myarr);
    ?>
    

    4、自然排序法natsort(),natcasesort()自然排序不分大小写

    $myarr=[3,5,62,3,"hello",78,"HELLO"];
    
    natcasesort($myarr);
    print_r($myarr);
    ?>
    

    5、usort(),uasort(),uksort()用户自定义规则排序
    usort(被排序数组名,“自定义排序函数名”)
    自定义排序返回1,0,-1用来决定是升序,不变,降序
    被排序数组被依次遍历,两两作为自定义排序函数的参数来使用

    <?php
    $myarr=["linux","php","mysql","vue"];
    
    function mysort($one,$two){
    	if(strlen($one)==strlen($two)){
    		return 0;
    	}else{
    		return strlen($one)>strlen($two)?-1:1;
    	}
    };
    print_r($myarr);
    echo "<br>";
    usort($myarr,"mysort");
    print_r($myarr);
    ?>
    

    打印:
    Array ( [0] => linux [1] => php [2] => mysql [3] => vue )
    Array ( [0] => linux [1] => mysql [2] => php [3] => vue )

    6、array_multisort()多维数组的排序
    array_multisort("第一排序数组名”,“第二排序数组名”,“第三排序数组名”)
    实在不想搞清楚

    12、拆分,合并,分解和接合数组

    1、array_slice()函数截取数组元素

    array_slice(拆分的数组,开始位置,截取元素个数,true|false是否保留键名)

    会生成新数组

    <?php
    $myarr=["linux","php","mysql","vue","mysql","vue","mysql","vue"];
    
    $newArray=array_slice($myarr,2,4,false);
    print_r($newArray);
    ?>
    

    2、array_splice()函数移除数组元素(移除后或可用新元素替换移除部分)
    array_splice(拆分的数组,开始位置,截取元素个数,true|false是否保留键名)

    仅仅移除

    <?php
    $myarr=["linux","php","mysql","vue","mysql","vue","mysql","vue"];
    print_r($myarr);
    echo "<br>";
    $newArray=array_splice($myarr,2,4);
    print_r($myarr);
    ?>
    

    移除后再填补

    <?php
    $myarr=["linux","php","mysql","vue","mysql","vue","mysql","vue"];
    $myarr2=["zhangsan","lisi","wanger","zhaoliu","maba"];
    print_r($myarr);
    echo "<br>";
    $newArray=array_splice($myarr,2,4,$myarr2);
    print_r($myarr);
    ?>
    

    3、array_combine()函数合并数组
    将两个数组合并,一个做键名,一个昨键值。如果一个为空或两个元素个数不同,则该函数返回false

    <?php
    $myarr=[1,3,4,6];
    $myarr2=["zhangsan","lisi","wanger","zhaoliu"];
    
    $newArray=array_combine($myarr,$myarr2);
    print_r($newArray);
    ?>
    

    4、array_intersect()函数获得交集数组
    返回多个数组的交集,生成新数组,仅仅是值一致的交集,键名保持不眠

    <?php
    $myarr=["zhangsan","sunqi","laoliu","zhaoliu"];
    $myarr2=["zhangsan","lisi","wanger","zhaoliu"];
    
    $newArray=array_intersect($myarr,$myarr2);
    print_r($newArray);
    ?>
    

    5、array_merge()函数合并数组
    多个数组合并为一个数组,如果键名重复,则值为最后一个键名对应的键值。
    传入的多个数组必须数组元素类型一致

    <?php
    $myarr=["zhangsan","sunqi","laoliu","zhaoliu"];
    $myarr2=["zhangsan","lisi","wanger","zhaoliu"];
    
    $newArray=array_merge($myarr,$myarr2);
    print_r($newArray);
    ?>
    

    6、array_diff()函数返回两数的差集

    <?php
    $myarr=["zhangsan","sunqi","laoliu","zhaoliu"];
    $myarr2=["zhangsan","lisi","wanger","zhaoliu"];
    
    $newArray=array_diff($myarr,$myarr2);
    print_r($newArray);
    ?>
    

    13、数组与数据结构-使用数组实现堆栈

    1、先进先出队列push,pop,始终操作最后一个元素
    array_push:压栈,装入一个元素
    array_pop:出栈:删除一个元素

    <?php
    $myarr=["zhangsan","sunqi","laoliu","zhaoliu"];
    
    array_push($myarr,"wangwu","maba");
    print_r($myarr);
    ?>
    

    2、后进先出队列array_shift()删除第一个元素,array_unshift()在开头插入一个或多个元素,始终操作最早一个元素
    格式:
    array_shift(“数组名”)
    array_shift(“数组名”,“第一个元素”,“第二个元素”…)

    <?php
    $myarr=["zhangsan","sunqi","laoliu","zhaoliu"];
    
    
    array_shift($myarr);
    print_r($myarr);
    ?>
    

    开头加一个数组,一个或多个元素都可以

    <?php
    $myarr=["zhangsan","sunqi","laoliu","zhaoliu"];
    $myarr2=[2,3,4];
    
    array_unshift($myarr,"maba","lisi");
    array_unshift($myarr,$myarr2);
    print_r($myarr);
    ?>
    

    14、随机选取元素

    1、array_rand()随机选取一个或多个元素的键名
    array_rand(操作数组,元素数量)
    第一个参数为数组
    第二个参数为取出元素的数量
    会生成新数组
    只取键名,不取数量

    <?php
    $myarr=["zhangsan","sunqi","laoliu","zhaoliu"];
    
    $newAaary=array_rand($myarr,3);//新数组仅仅存放了随机取出来的键名
    foreach ($newAaary as $value){
    	echo $myarr[$value]."<br>";
    }
    ?>
    

    2、array_shuffle()随机打乱数组元素的顺序
    随机打乱数组元素的顺序不生成新的数组

    <?php
    $myarr=["zhangsan","sunqi","laoliu","zhaoliu"];
    
    shuffle($myarr);
    foreach ($myarr as $value){
    	echo $value."<br>";
    }
    ?>
    

    3、array_sum()数组求和
    对数组求和,返回一个总和值

    <?php
    $myarr=[3,4,5,6];
    
    $sum=array_sum($myarr);
    echo $sum;
    ?>
    

    4、range()创建新数组
    range(数组元素最小值,数组元素最大值,步长默认1)

    <?php
    $myarr=range(5,54,2);
    print_r($myarr);
    ?>
    

    15、PHP数组操作细节

    1、+运算符
    两个数组相加合并,下标相同的会被前一个数组覆盖

    2、unset()删除数组中任意位置的元素
    格式:
    unset(数组名[索引])

    删除元素后,数组不会重建索引

    <?php
    $myarr=[3,4,5,6];
    
    unset($myarr[2]);
    print_r($myarr);
    ?>
    

    如果需要重建索引,使用array_values(数组名),并生成新数组

    <?php
    $myarr=[3,4,5,6];
    
    unset($myarr[2]);
    print_r($myarr);
    echo "<br>";
    $newArray=array_values($myarr);
    print_r($newArray);
    ?>
    

    打印:
    Array ( [0] => 3 [1] => 4 [3] => 6 )
    Array ( [0] => 3 [1] => 4 [2] => 6 )

    展开全文
  • 从JDK5之后,Java提供了一种更简单的循环:foreach...使用foreach循环遍历数组和集合元素时,无需获得数组或集合的长度,无需根据索引来访问数组元素或集合元素,foreach循环自动遍历数组或集合的每个元素。 foreac...

    从JDK5之后,Java提供了一种更简单的循环:foreach循环,也叫作增强for循环,这种循环遍历数组和集合更加简洁。使用foreach循环遍历数组和集合元素时,无需获得数组或集合的长度,无需根据索引来访问数组元素或集合元素,foreach循环自动遍历数组或集合的每个元素。

    foreach循环的语法格式如下:

    for(type variableName:array|collection){

        //variableName自动迭代访问每个元素

    }

    在上面语法格式中,type是数组元素或集合元素的类型,variableName是一个形参名,foreach循环将自动将数组元素、集合元素依次赋给该变量。下面程序示范了如何使用foreach循环遍历数组元素:

    public class ArrDemo{

        public static void main(String[] args){

             int[] arr = {1,2,3,4,5,6,7};

             for(int num : arr){

                  System.out.println(num);

             }

        }

    }

    编译并运行这个程序,控制台将显示如图1所示的信息。

    4f6c125a0be242cdb7b293b411b9ebad.png

    图1  ArrDemo运行结果

     

    上面的代码使用foreach循环依然可以遍历了数组中的每个元素并输出在控制台,而无需获得数组的长度,也无需根据索引来访问数组元素,foreach循环和普通的循环不同的是,它无须循环条件,无须循环迭代语句,这些部分都由系统来完成,foreach循环自动迭代数组的每个元素,当每个元素都被迭代一次后,foreach循环自动结束。

    当使用foreach循环来迭代输出数组元素或集合元素时,通常不要对循环变量进行赋值,虽然这种赋值语句在语法上是允许的,但是没有太大的意义,而且极容易引起错误。例如下面的程序。

    public class ForEachArrError{

        public static void main(String[] args){

             String[] books = {"Java从入门到出家",

                                 "Oracle从入门到删库跑路","PHP从入门到出轨"};

             for(String book : books){

                  book = "C语言从入门到抑郁症康复";

                  System.out.println(book);

             }

             System.out.println(books[0]);

        }

    }

    编译并运行这个程序,控制台将显示如图2所示的信息。

    eebbe86376f14ff598936bac71c1d7c2.png

    图2  ForEachArrError运行结果

     

    从上面运行结果看,由于在foreach循环中对数组元素进行赋值,结果导致不能正确遍历数组元素,不能正确地取出每个数组元素的值。而且当再次访问第一个素组元素时,发现数组元素的值依然没有改变。不难看出,当使用foreach来迭代访问数组元素时,foreach中的循环变量相当于一个临时变量,系统会把数组元素一次赋给这个临时变量,而这个临时变量不是数组元素,它只是保存了数组元素的值。因此,如果希望改变数组元素的值,则不能使用这种foreach循环。

    转载于:https://my.oschina.net/u/4125915/blog/3080314

    展开全文
  • Oracle中Cursor是非常有用的,用于遍历临时表中的查询结果。其相关方法和属性也很多,现仅就常用的用法做一二介绍: (1)Cursor型游标(不能用于参数传递) create or replace procedure test() is ...
  • PL/SQL变长数组时PL/SQL集合数据类型中的一种,其使用方法与PL/SQL嵌套表大同小异,唯一的区别则是变长数组的元素的最大个数是有限制的。也即是说变长数组的下标固定下限等于1,上限可以扩展。下... 来自: robinson...
  • oracle存储过程返回数组给java程序

    千次阅读 2013-07-25 20:49:49
    首先在oracle中新建两个数组类型:   create or replace type str_list as varray(1000) of varchar2(40)   create or replace type num_list as varray(1000) of number    新建存储过程   create or replac
  • ORACLE存储过程中使用数组 .

    千次阅读 2011-08-22 20:26:58
    在PL/SQL中是没有数组(Array)概念的。但是如果程序员想用Array的话,就得变通一下,用TYPE 和Table of Record来代替多维数组,一样挺好用的。 emp_type 就好象一个table 中的一条record 一样,里面有id, name,...
  • 语句的执行环境是plsql的sql窗口, 语句的目的是从整个... -- 声明一个变量,该变量用于存储查询的sql语句 v_cityCode varchar2(20); -- 每个sql语句执行完的查询结果 code varchar2(20); -- 查询条件 begi...
  • python 读文件 oracle excel 多维数组 原创zhaoyangjian724 最后发布于2018-08-03 17:49:43 阅读数 192 收藏 展开 # !/usr/bin/env python # -*- coding: utf-8 -*- import MySQLdb from datetime import datetime ...
  • Oracle数组

    千次阅读 2019-04-23 11:04:00
    固定长度数组: declare type t_test is varray(5) of varchar2(9); test t_test := t_test('a', 'b', 'c', 'd', 'e'); begin --遍历 for i in 1 .. test.count loop dbms_output.put_li...
  • oracle 数组

    2008-04-10 10:53:00
    补充一楼PL/SQL表的使用 CREATE OR REPLACE PROCEDURE sample is TYPE R_REC IS RECORD(INT NUMBER(6,2), CHR VARCHAR2(100)); TYPE T_REC IS TABLE OF R_REC INDEX BY BINARY_INTEGER; A_ZEI T_REC;
  • 内容 ... 使用索引访问数组的元素 了解数组的内存图解 了解空指针和越界异常 掌握数组遍历 掌握数组最大值的获取 掌握数组元素的统计 了解数组的复制 了解数组的反转 第四章 数...
  • 关联数组是一种集合类型。 这部分包括: ■ 关于集合 ■ 关于关联数组 ■ 声明关联数组 ■ 填充关联数组遍历密集型关联数组遍历稀疏型关联数组
  • oracle存储过程语法

    2011-12-07 17:03:44
    oracle数据库存储过程相关知识简介,存储过程创建语法讲解,包括判断语句、循环、数组遍历、游标使用,后附实例
  • 不同的程序语言都有多种循环语句,而且功能是差不多的,当然使用场合还是有些区别的,比如for与for in,for in比较好用,它不需要预先知道对象属性的长度。 通常在JavaScript中用for与for in遍历数组结果是没有什么...
  • 介绍Oracle存储过程成使用数组的方式
  • Oracle语句错误异常集锦查询

    千次阅读 2013-12-18 17:50:58
    ORA-00097: 使用 Oracle SQL 特性不在 SQL92 级中 ORA-00099: 等待资源时发生超时,可能是 PDML 死锁所致 ORA-00100: 未找到数据 ORA-00101: 系统参数 DISPATCHERS 的说明无效 ORA-00102: 调度程序无法...
  • ​ } } } 数组下标越界异常 ArrayIndexOutOfBoundsException: 不用下标遍历数组 for (int num : nums) { //对于这个for语句,只需打出nums.for按回车就会自动生成。但是这种遍历是输出数组所有元素,未赋值的也会...
  • emp_sal.last -- 因为emp_sal的类型是内嵌表类型,所以可以对它进行循环遍历操作。  loop  update emp set emp.sal=emp.sal+1000 where emp.empno = emp_sal(i); --把emp_sal用i循环赋值给empno。  end ...
  • oracle常用sql语句

    千次阅读 2017-08-19 10:25:49
    – 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba –然后,解除对scott用户的锁 alter user scott account unlock; –那么这个用户名就能使用了。 –(默认全局数据库名orcl) 1、select ...
  • DECLARE CURSOR c_dept is -- 定义游标 SELECT dname FROM dept; type c_list is varray (4) of dept.dname%type; name_list c_list := c_list(); counter integer :=0; ... FOR n IN c_dept LO...
  • SQL查询语句的执行流程(以Oracle举例) 首先, 准备两张表 用户表user 角色表role 先来一个基本的查询语句 SELECT * FROM &amp;amp;quot;user&amp;amp;quot; u, &amp;amp;quot;role&amp;amp;quot; r ...
  • 在ibatis 使用 in 语句进行查询的几种方案 在进行数据库查询的时候我们难免会遇到需要查询的过滤条件是在几个特定的ID中进行查询,这时就用到了in语句查询,不过在用Java使用in进行查询,有几点需要注意。 ...
  • oracle 之定义数组类型 注:本文来源:《oracle 之定义数组类型 》 oracle 数组类型,没有现成的类型,但是可以自己随意定义,很方便。 Oracle 数组可以分为定长数组和可变长的数组两类。以下主要是一维数组介绍...
  • 数组

    2017-08-20 08:26:40
    数组翻译自ORACLE Java Tutorials –Arrays 数组是一个容器对象,它保存单个类型的固定数量的值。 创建数组时,建立数组的长度。 创建后,其长度是固定的。 你已经看到了一个数组的例子,在“Hello World!”的主要...
  • Java数组的定义和使用

    2018-05-28 16:40:01
    如果希望保存一组有相同类型的数据,可以使用数组数组的定义和内存分配Java 中定义数组的语法有两种: type arrayName[]; type[] arrayName;type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,441
精华内容 6,576
关键字:

oracle查询语句使用数组遍历