2维数组 ios_ios 一维数组转为三维数组 - CSDN
精华内容
参与话题
  • iOS沉思录】iOS中的二维数组

    千次阅读 2017-01-05 22:14:15
    首先我们知道OC中是没有二维数组的,二维数组是通过一位数组的嵌套实现的,但是别忘了我们有字面量,实际上可以和C/C++类似的简洁地创建和使用二维数组。这里总结了创建二维数组的两种方法以及数组的访问方式。 通过...

    首先我们知道OC中是没有二维数组的,二维数组是通过一位数组的嵌套实现的,但是别忘了我们有字面量,实际上可以和C/C++类似的简洁地创建和使用二维数组。这里总结了创建二维数组的两种方法以及数组的访问方式。

    http://images.cnitblog.com/i/569008/201405/191628561371344.jpg

    通过字面量创建和使用二维数组(推荐)

        // 1.字面量创建二维数组并访问(推荐)
        NSArray *array2d = @[
                              @[@11,@12,@13],
                              @[@21,@22,@23],
                              @[@31,@32,@33]
                              ];
        // 字面量访问方式(推荐)
        NSLog(@"array2d[2][2]:%@",array2d[2][2]);
        // 数组对象函数访问
        NSLog(@"array2d[2][2]:%@",[[array2d objectAtIndex:2] objectAtIndex:2]);

    打印结果:

    2017-01-05 21:59:49.694 SingleView[10483:506166] array2d[2][2]:33
    2017-01-05 21:59:49.695 SingleView[10483:506166] array2d[2][2]:33

    通过嵌套原本的数组对象使用二维数组

        // 2.另外一种循环嵌套穿件二维数组的方式
        NSMutableArray *mulArrayD1 = [[NSMutableArray alloc]init]; // 第一维数组
        // 添加第二维
        for(NSUInteger i = 1;i <= 3; i++) {
            NSArray *arrayD2 = @[@(i*10+1), @(i*10+2), @(i*10+3)];
            [mulArrayD1 addObject:arrayD2];
        }
        // 字面量访问方式(推荐)
        NSLog(@"array2d[2][2]:%@",mulArrayD1[2][2]);
        // 数组对象函数访问
        NSLog(@"array2d[2][2]:%@",[[mulArrayD1 objectAtIndex:2] objectAtIndex:2]);

    打印结果:

    2017-01-05 21:59:49.695 SingleView[10483:506166] array2d[2][2]:33
    2017-01-05 21:59:49.695 SingleView[10483:506166] array2d[2][2]:33

    问题:
    OC中是否有二维数组,如何实现?

    OC中没有二维数组,但可以通过一维数组的嵌套实现。

    展开全文
  • 这里,我要实现的是两个二维数组,根据某一个字段相同,将其他的数据相加 数组一: $data1 = array( 0=&gt;array( "days"=&gt;"2018-10-11","IOS"=&gt;"3&...

    这里,我要实现的是两个二维数组,根据某一个字段相同,将其他的数据相加

    数组一:

    $data1 = array( 
    		   0=>array( "days"=>"2018-10-11","IOS"=>"3", "Android"=>"92"),
    		   1=>array( "days"=>"2018-10-10", "IOS"=>"103" ,"Android"=>"569" ),
    		   2=>array( "days"=>"2018-10-09" ,"IOS"=>"234", "Android"=>"568" ) ,
    		   3=>array( "days"=> "2018-10-08" ,"IOS"=> "222" ,"Android"=> "548" ) ,
    		   4=>array( "days"=> "2018-10-07" ,"IOS"=> "230" ,"Android"=> "736" ) ,
    		   5=>array( "days"=> "2018-10-06" ,"IOS"=> "656", "Android"=> "885" ) ,
    		   6=>array( "days"=> "2018-10-05" ,"IOS"=> "333" ,"Android"=> "894" ) ,
    	);

    数组二:

    $data2 = array( 
    		   0=>array("days"=> "2018-10-10","IOS"=> "1","Android"=> "2") ,
    		   1=>array("days"=> "2018-10-09" ,"IOS"=> "5" ,"Android"=> "5" ) ,
    		   2=>array("days"=> "2018-10-08" ,"IOS"=> "2" ,"Android"=> "4" ) ,
    		   3=>array("days"=> "2018-10-07" ,"IOS"=> "2" ,"Android"=> "10" ) ,
    		   4=>array("days"=> "2018-10-06" ,"IOS"=> "8" ,"Android"=> "14" ) ,
    		   5=>array("days"=> "2018-10-05" ,"IOS"=> "2" ,"Android"=> "16" ) ,
    	);

    根据days相同将IOS和Android分别相加

    我们先将两个数组合并:

    $data = array_merge($data1,$data2);

    结果:

    Array
    (
        [0] => Array
            (
                [days] => 2018-10-11
                [IOS] => 3
                [Android] => 92
            )
    
        [1] => Array
            (
                [days] => 2018-10-10
                [IOS] => 103
                [Android] => 569
            )
    
        [2] => Array
            (
                [days] => 2018-10-09
                [IOS] => 234
                [Android] => 568
            )
    
        [3] => Array
            (
                [days] => 2018-10-08
                [IOS] => 222
                [Android] => 548
            )
    
        [4] => Array
            (
                [days] => 2018-10-07
                [IOS] => 230
                [Android] => 736
            )
    
        [5] => Array
            (
                [days] => 2018-10-06
                [IOS] => 656
                [Android] => 885
            )
    
        [6] => Array
            (
                [days] => 2018-10-05
                [IOS] => 333
                [Android] => 894
            )
    
        [7] => Array
            (
                [days] => 2018-10-10
                [IOS] => 1
                [Android] => 2
            )
    
        [8] => Array
            (
                [days] => 2018-10-09
                [IOS] => 5
                [Android] => 5
            )
    
        [9] => Array
            (
                [days] => 2018-10-08
                [IOS] => 2
                [Android] => 4
            )
    
        [10] => Array
            (
                [days] => 2018-10-07
                [IOS] => 2
                [Android] => 10
            )
    
        [11] => Array
            (
                [days] => 2018-10-06
                [IOS] => 8
                [Android] => 14
            )
    
        [12] => Array
            (
                [days] => 2018-10-05
                [IOS] => 2
                [Android] => 16
            )
    
    )

    再对这个合并后的数组进行处理

    $newdata = [];
    foreach($data as $k=>$v){
        if(!isset($newdata[$v['days']])){
            $newdata[$v['days']] = $v;
        }else{
            $newdata[$v['days']]['IOS'] += $v['IOS'];
            $newdata[$v['days']]['Android'] += $v['Android'];
        }
    }

    结果:打印  p(array_values($newdata));

    Array
    (
        [0] => Array
            (
                [days] => 2018-10-11
                [IOS] => 3
                [Android] => 92
            )
    
        [1] => Array
            (
                [days] => 2018-10-10
                [IOS] => 104
                [Android] => 571
            )
    
        [2] => Array
            (
                [days] => 2018-10-09
                [IOS] => 239
                [Android] => 573
            )
    
        [3] => Array
            (
                [days] => 2018-10-08
                [IOS] => 224
                [Android] => 552
            )
    
        [4] => Array
            (
                [days] => 2018-10-07
                [IOS] => 232
                [Android] => 746
            )
    
        [5] => Array
            (
                [days] => 2018-10-06
                [IOS] => 664
                [Android] => 899
            )
    
        [6] => Array
            (
                [days] => 2018-10-05
                [IOS] => 335
                [Android] => 910
            )
    
    )

     

    这个就是我们想要的数组

     

     

    展开全文
  • //构造二维数组 NSArray *array = [[NSArray alloc] initWithObjects: [NSArray arrayWithObjects:@"iOS",@"android",@"C",@"C++",@"OC",@"JAVA", nil], [NSArray arrayWithObjects:@"php",@"c#",@"FMDB",@...

    //构造二维数组

    NSArray *array = [[NSArray alloc] initWithObjects:
    [NSArray arrayWithObjects:@"iOS",@"android",@"C",@"C++",@"OC",@"JAVA", nil],
    [NSArray arrayWithObjects:@"php",@"c#",@"FMDB",@"sqlite",@"odbc",@"photoshop", nil],
    [NSArray arrayWithObjects:@"javascript",@"xml",@"html",@"cocos2D",@"u3d",@"sjjg", nil],
    nil];

    //打印二维数组
    NSLog(@"%@",[[array objectAtIndex:1] objectAtIndex:2]);

    //构造多维数组
    NSArray *array = [[NSArray alloc] initWithObjects:
    [NSArray arrayWithObjects:
    [NSArray arrayWithObjects:@"生活",@"生存",@"生命",@"生长",@"生产",@"生气", nil],
    [NSArray arrayWithObjects:@"美丽",@"美好",@"美人",@"美剧",@"美声",@"美琪", nil],
    nil],
    [NSArray arrayWithObjects:@"海洋",@"湖泊",@"江河",@"小溪",@"河流",@"流水", nil],
    [NSArray arrayWithObjects:@"西施",@"昭君",@"貂蝉",@"玉环",@"妲己",@"慈禧", nil],
    nil];

    //打印多维数组
    NSLog(@"%@",[[[array objectAtIndex:0] objectAtIndex:1] objectAtIndex:2]);

    [/code]

    展开全文
  • Objective-C 二维数组详解

    万次阅读 2015-11-02 09:52:08
    OC中的二维数组也是通过一维数组来建立的,今天我们来详解一下如何在OC中使用二维数组。 【使用NSArray初始化二维数组】 使用NSArray初始化的一维数组和二维数组都是不可变数组。 #import int main(int argc, ...

         在实际的项目开发中,二维数组也是常常用到的数据结构。OC中的二维数组也是通过一维数组来建立的,今天我们来详解一下如何在OC中使用二维数组。

    【使用NSArray初始化二维数组】

    使用NSArray初始化的一维数组和二维数组都是不可变数组。

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
      @autoreleasepool {
        
        
        //定义2个一维数组;
        NSArray *firstRow = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];
        NSArray *secondRow = [[NSArray alloc] initWithObjects:@"4",@"5",@"6", nil];
        
        //使用一维数组来初始化二维数组;
        NSArray *my2DArray = [[NSArray alloc] initWithObjects:firstRow,secondRow, nil];
        //输出二维数组对象;
        NSLog(@"二维数组:%@",my2DArray);
        
        //遍历二维数组;
        for (int i = 0; i < [my2DArray count]; i++) {
          for (int j = 0; j < firstRow.count; j++) {
            NSLog(@"二维数组元素:%@",[[my2DArray objectAtIndex:i] objectAtIndex :j]);
          }
        }    
      }
      return 0;
    }

    打印结果如下:



    【使用NSMutableArray初始化二维数组】

    使用NSMutableArray初始化的一维数组和二维数组都是可变的,可以进行修改和插入操作;

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
      @autoreleasepool {
        
        NSMutableArray *firstRow = [[NSMutableArray alloc] initWithObjects:@"11",@"22",@"33", nil];
        NSMutableArray *secondRow = [[NSMutableArray alloc] initWithObjects:@"44",@"55",@"66", nil];
        NSMutableArray *my2DArray = [[NSMutableArray alloc] initWithObjects:firstRow,secondRow, nil];
        
    //插入一个数据
        [[my2DArray objectAtIndex:0] insertObject:@"iOS" atIndex:3];
        NSLog(@"%@",my2DArray);
        
        [[my2DArray objectAtIndex:1] insertObject:@"OC" atIndex:0];
        NSLog(@"%@",my2DArray);
        
        
      }
      return 0;
    }
    打印结果如下:


    【使用for-in快速遍历二维数组】

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
      @autoreleasepool {
        
        
        //定义2个一维数组;
        NSArray *firstRow = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];
        NSArray *secondRow = [[NSArray alloc] initWithObjects:@"4",@"5",@"6", nil];
        
        //使用一维数组来初始化二维数组;
        NSArray *my2DArray = [[NSArray alloc] initWithObjects:firstRow,secondRow, nil];
        
        //遍历二维数组;
        for (int i = 0; i < [my2DArray count]; i++) {
          for (int j = 0; j < firstRow.count; j++) {
            NSLog(@"二维数组元素:%@",[[my2DArray objectAtIndex:i] objectAtIndex :j]);
          }
        }
        
        //打印某个维度的一维数组
        NSLog(@"一维数组:%@",[my2DArray objectAtIndex:0]);
        
        //使用for-in快速遍历二维数组中的一维数组
        for (NSArray *arr in my2DArray) {
          NSLog(@"二维数组中的一维数组:%@",arr);
        }
        
        
        //使用for-in快速遍历二维数组中的每一个元素
        for (NSArray *arr in my2DArray) {
          for (NSString *str in arr) {
            NSLog(@"for-in结果:%@",str);
          }
        }
        
        
      }
      return 0;
    }

    打印结果:



    github主页:https://github.com/chenyufeng1991  。欢迎大家访问!


    展开全文
  • iOS 数组倒序方法

    千次阅读 2018-05-19 09:51:44
    代码如下: _dataArray=[[NSMutableArray alloc]init]; [_dataArray addObjectsFromArray:[messageInfoDict ...//如果数组中装的是1,2,3,4经过reverseObjectEnumerator处理后,数组中各个元素会倒序排列,
  • iOS数组排序

    千次阅读 2016-08-14 21:38:46
    sortedArrayUsingComparator数组排序方法 sortedArrayUsingSelector方法只能升序 array = [array sortedArrayUsingSelector:@selector(compare:)];// 给数组排序,块代码的返回值,比较结果 // NSOrderedAscending = ...
  • IOS维数组转二维数组

    千次阅读 2015-12-28 15:23:55
    维数组转二维数组  int bb = (int)self.OneRMBArray.count;    NSLog(@"bb-->%d",bb);  NSLog(@"self.OneRMBArray-->%@",self.OneRMBArray);    
  • C++ vector 实现动态大小的二维数组

    千次阅读 2018-04-10 23:13:44
    由书上的知识可知,C++中的二维数组实质上是一维数组里存储的元素仍然是一维数组,而且在定义的时候必须指定数组的大小,很显然无法满足我们的需要。 经过查找网上的资料,发现还有一种方法是利用new运算符建立动态...
  • 1: 1.在AFNetworking的源码中找到...2.在.m文件中在AFQueryStringPairsFromKeyAndValue这个方法中,找到 `[mutableQueryStringComponents addObjectsFromArray:AFQueryStringPairsFromKeyAndValue([NSStri
  • // // main.c // c_test2 // // Created by vincent_guo on 13-3-26. // Copyright (c) 2013年 ...// #include #include ...//写一个函数,将一维数组中的元素逆序存放(用指针做这题) //逆序存放第一种写法 void re
  • objective-c是C 语言的超级,直接使用了 C 语言的数组。定义数组语法格式:type array[length],其中的 length 可以是个固定的整数也可以是整数变量或表达式。 定义数组时,如果没有对数组进行初始化,系统对数组元素...
  • C语言_二维数组

    千次阅读 2014-10-23 14:01:04
    ddddd
  • iOS开发 - Object-C中如何使用多维数组

    千次阅读 2017-05-24 16:49:32
    但是在Object-C中,并没有多维数组这一概念,即使Object-C兼容c语言,c的多维数组也满足不了iOS的类型需要(博主c已经忘得差不多了,说的不对,还望指正),所以不可能用c的写法来适用iOS。当多维数组出现
  • 从数据库获取多个数据时往往是二维数组,但是有时候我们需要获取数组里面的某一键的数据。有两种方法:foreach()循环和Array()函数 示例数组,获取二维数组里面的device_token的值并且放在一维数组里面: $arr = ...
  • // 121215 文件操作1.cpp : 定义控制台应用程序的入口点。 // /* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作 者: 刘同宾 * 完成日期:2012 年 12 月 15 日 ...* 版 本 号:v1.0
  • 数组写入Txt 与读Txt到数组 C++

    万次阅读 2016-03-05 15:19:56
    因为需要保存一些二维数组的数据,所以在写入到Txt,与从Txt中读出到数组中还是不很理解,上网查了很久,发现很多都是讲了很多理论的,不适合刚刚入门的小菜鸟,于是我这只菜鸟就写了个菜鸟版的,其中讲述组的数据...
  • php端使用二维数组iOS进行Json通讯

    千次阅读 2013-10-22 09:12:47
    在这里曾经说到了,如何用php端和iOS通过Json通讯的:http://blog.csdn.net/zengraoli/article/details/12918369 ...找到了php使用二维数组的资料,写了一小段测试例子(真是新手了),等初步完成之后,再回过来修改这一
  • 维数组的三种遍历方法

    千次阅读 2019-01-16 20:30:19
    首先,二维数组的作用是是用来存放以为数组的数组 int arr[][] = {{1,2},{3,4,5},{6,7}}; //定义一个二维数组 // 普通for循环 for(int i = 0;i&lt;arr.length;i++){ //数组的长度是三,每一个一维数组...
  • swift数组删除特定元素(非 at:index)

    万次阅读 2018-05-10 09:43:56
    用swift应该都知道 删除某一个元素的时候提供的是 array.remove(at: &lt;#T##Int#&gt;)并没有提供按照 指定元素删除的方法。不是没有,是Array 支持更强到的值过滤能力。 Array.filterfilter方法支持 正则...
  • C++将csv文件数据读入数组

    千次阅读 2017-10-23 18:57:12
    将形如 1,2,3 4,5,6 7,8,9 的csv文件数据放入二维数组中。 #include <iostream> #include <string> #include <vector> #include <fstream> #include <sstream> using namespace
1 2 3 4 5 ... 20
收藏数 9,127
精华内容 3,650
关键字:

2维数组 ios