Tag: multidimensional array

sorting在PHP中的multidimensional array?

我有这样的一个数组 array(5) { [0]=> array(5) { [0]=> string(7) "jannala" [1]=> string(10) "2009-11-16" [2]=> string(29) " <p>Jotain mukavaa.</p> " [3]=> int(12) [4]=> int(1270929600) } [1]=> array(5) { [0]=> string(7) "jannala" [1]=> string(10) "2009-11-16" [2]=> string(51) " <p>Saapumiserä II/09 astuu palvelukseen</p> " [3]=> int(11) [4]=> int(1270929600) } … } 我需要做的是根据数组[x] [4](unix时间戳值)对数组进行sorting。 我将如何实现这一目标?

如何将multidimensional array传递给C和C ++中的函数

#include<stdio.h> void print(int *arr[], int s1, int s2) { int i, j; for(i = 0; i<s1; i++) for(j = 0; j<s2; j++) printf("%d, ", *((arr+i)+j)); } int main() { int a[4][4] = {{0}}; print(a,4,4); } 这在C中有效,但在C ++中不起作用。 错误: cannot convert `int (*)[4]' to `int**' for argument `1' to `void print(int**, int, int)' 为什么它不能在C ++中工作? 需要做什么改变?

phpmultidimensional array删除重复

不知道这个问题是否需要删除是重复的,但我在其他地方找不到答案,所以我会去问一问。 我有一个2d数组,如下所示: Array ( [0] => Array ( [0] => dave [1] => jones [2] => c@bc ) [1] => Array ( [0] => john [1] => jones [2] => a@bc ) [2] => Array ( [0] => bruce [1] => finkle [2] => c@bc ) ) 我想删除那些重复的电子邮件。 所以在上面的例子中,我想删除[] [0]或[] [2]。 我不担心检查名称或类似的东西,我只需要基于一个值重复数据删除子arrays。 目前我有这样的事情 if(is_array($array) && […]

PHP 2D数组输出所有组合

我已经有这个问题弯腰了一会儿(头冷也没有帮助!),基本上我有一个PHP数组,看起来像这个例子: $array[0][0] = 'apples'; $array[0][1] = 'pears'; $array[0][2] = 'oranges'; $array[1][0] = 'steve'; $array[1][1] = 'bob'; 而且我希望能够从这个表格中产生这些表格的每一种可能的组合,但是不需要重复任何组合(不pipe它们的位置),所以例如这将输出 Array 0 Array 1 apples steve apples bob pears steve pears bob 但是我希望能够尽可能多的使用不同的数组。

对multidimensional array的一维访问:定义明确的C?

我想我们都同意,通过以一维方式解引用其第一个元素(可能是偏移量)的指针来访问一个真正的multidimensional array被认为是惯用的C,例如: void clearBottomRightElement(int *array, int M, int N) { array[M*N-1] = 0; // Pretend the array is one-dimensional } int mtx[5][3]; … clearBottomRightElement(&mtx[0][0], 5, 3); 然而,在我的语言律师需要说服,这实际上是明确的C! 尤其是: 标准是否保证编译器不会在例如mtx[0][2]和mtx[1][0]之间填充内容? 通常,索引数组的末尾(除了末尾之外)是未定义的(C99,6.5.6 / 8)。 所以下面显然是不确定的: struct { int row[3]; // The object in question is an int[3] int other[10]; } foo; int *p = &foo.row[7]; // ERROR: […]

根据inputdynamic二维数组

我需要从用户那里得到一个inputN并生成一个N * Nmatrix。 我怎样才能声明matrix? 一般来说,数组和matrix的大小应该在声明中是固定的,对吗? 那么vector<vector<int>>呢? 我从来没有使用过,所以我需要老兵的build议。

为什么numpy的einsum比numpy的内置函数更快?

让我们从三个dtype=np.double数组开始。 计时是在英特尔CPU上使用nccu 1.7.1与icc编译并链接到英特尔mkl 。 用gcc不带mkl编译的numpy 1.6.1的AMD cpu也被用来validation时序。 请注意,时序规模几乎与系统规模成线性关系,并不是因为numpy函数中的小开销, if这些差异将以微秒而不是毫秒显示: arr_1D=np.arange(500,dtype=np.double) large_arr_1D=np.arange(100000,dtype=np.double) arr_2D=np.arange(500**2,dtype=np.double).reshape(500,500) arr_3D=np.arange(500**3,dtype=np.double).reshape(500,500,500) 首先让我们看一下np.sum函数: np.all(np.sum(arr_3D)==np.einsum('ijk->',arr_3D)) True %timeit np.sum(arr_3D) 10 loops, best of 3: 142 ms per loop %timeit np.einsum('ijk->', arr_3D) 10 loops, best of 3: 70.2 ms per loop 鲍尔斯: np.allclose(arr_3D*arr_3D*arr_3D,np.einsum('ijk,ijk,ijk->ijk',arr_3D,arr_3D,arr_3D)) True %timeit arr_3D*arr_3D*arr_3D 1 loops, best of 3: 1.32 s per loop %timeit np.einsum('ijk,ijk,ijk->ijk', […]

如何在Python中初始化一个二维数组?

我开始python,我试图使用一个二维列表,我最初填补了每个地方相同的variables。 我想出了这个: def initialize_twodlist(foo): twod_list = [] new = [] for i in range (0, 10): for j in range (0, 10): new.append(foo) twod_list.append(new) new = [] 它给出了预期的结果,但感觉像一个解决方法。 有一个更容易/更短/更优雅的方式来做到这一点?

用多个键排列multidimensional array

我想通过多个键sortingmultidimensional array,我不知道从哪里开始。 我看着uasort,但不太清楚如何编写一个我需要的函数。 我需要按状态sorting,然后是event_type,然后是date。 我的数组看起来像这样: Array ( [0] => Array ( [ID] => 1 [title] => Boring Meeting [date_start] => 2010-07-30 [time_start] => 06:45:PM [time_end] => [state] => new-york [event_type] => meeting ) [1] => Array ( [ID] => 2 [title] => Find My Stapler [date_start] => 2010-07-22 [time_start] => 10:45:AM [time_end] => [state] => […]

我怎样才能使用嵌套for循环加起来两个2d(pitched)数组?

我是新来的cuda。 我想把两个2d数组加到第三个数组中。 我使用以下代码: cudaMallocPitch((void**)&device_a, &pitch, 2*sizeof(int),2); cudaMallocPitch((void**)&device_b, &pitch, 2*sizeof(int),2); cudaMallocPitch((void**)&device_c, &pitch, 2*sizeof(int),2); 现在我的问题是,我不想要使用这些数组作为扁平二维数组所有在我的内核代码我想迪是使用两个循环&把结果放在第三个数组像 __global__ void add(int *dev_a ,int *dev_b,int* dec_c) { for i=0;i<2;i++) { for j=0;j<2;j++) { dev_c[i][j]=dev_a[i][j]+dev_b[i][j]; } } } 我如何在CUDA中做到这一点? 请告诉我如何以这种方式使用二维数组? 内核调用2d数组应该是什么? 如果可能,请使用代码示例进行说明。