标签: multidimensional-array

如何通过嵌套在里面的元素对PHP数组进行排序?

我有一个如下数组:

Array
(
    [0] => Array
        (
            'name' => "Friday"
            'weight' => 6
        )
    [1] => Array
        (
            'name' => "Monday"
            'weight' => 2
        )
)

我想获取该数组中的最后一个值('weight'),并使用它来对主数组元素进行排序.所以,在这个数组中,我想对它进行排序,以便'Monday'元素出现在'Friday'元素之前.

php arrays sorting usort multidimensional-array

36
推荐指数
4
解决办法
2万
查看次数

PHP - 递归数组到对象?

有没有办法在PHP中将多维转换arraystdClass对象?

铸造(object)似乎不会递归地工作. json_decode(json_encode($array))产生我正在寻找的结果,但必须有更好的方法......

php object stdclass multidimensional-array

36
推荐指数
5
解决办法
3万
查看次数

二维数组值C++

我想声明一个2D数组并为其赋值,而不运行for循环.

我以为我可以使用以下想法

int array[5] = {1,2,3,4,5};
Run Code Online (Sandbox Code Playgroud)

这也适用于初始化2D阵列.但显然我的编译器不喜欢这个.

/*
 1   8  12  20  25
 5   9  13  24  26
*/

#include <iostream.h>

int main()
{
    int arr[2][5] = {0};   // This actually initializes everything to 0.
    arr [1] [] = {1,8,12,20,25}; // Line 11
    arr [2] [] = {5,9,13,24,26};
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

J:\ CPP\Grid> bcc32.exe Grid.cpp

Borland C++ 5.5.1 for Win32版权所有(c)1993,2000 Borland

Grid.cpp:

错误E2188 Grid.cpp 11:函数main()中的表达式语法

错误E2188 Grid.cpp 12:函数main()中的表达式语法

警告W8004 Grid.cpp 14:'arr'被分配一个从未在函数main()中使用的值

*编译中的2个错误*

请帮助确定使用我的一组值初始化2d数组的正确方法.

c c++ initialization shortcut multidimensional-array

36
推荐指数
4
解决办法
17万
查看次数

使用Python创建3D数组

我想在Python(2.7)中创建一个3D数组,使用如下:

distance[i][j][k]
Run Code Online (Sandbox Code Playgroud)

并且数组的大小应该是我拥有的变量的大小.(N*N*N)

我试过用:

distance = [[[]*n]*n]
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.

有任何想法吗?非常感谢!

编辑:我只能使用deafult库,乘法的方法(即[[0]*n]*n)不会工作,因为它们链接到同一个指针,我需要所有的值都是个体的

EDIT2:已经通过以下答案解决了.

python arrays multidimensional-array python-2.7

36
推荐指数
5
解决办法
17万
查看次数

如何在C++中初始化3D数组

如何在C++中初始化3d数组

int min[1][1][1] = {100, { 100, {100}}}; //this is not the way
Run Code Online (Sandbox Code Playgroud)

c c++ arrays multidimensional-array

35
推荐指数
3
解决办法
8万
查看次数

python tilde unary operator as negation numpy bool array

应该是一个简单的问题,但我无法在任何地方找到答案.~python中的运算符被记录为按位反转运算符.精细.我注意到看似精神分裂的行为,即:

~True -> -2
~1 -> -2
~False -> -1
~0 -> -1
~numpy.array([True,False],dtype=int) -> array([-2,-1])
~numpy.array([True,False],dtype=bool) -> array([False,True])
Run Code Online (Sandbox Code Playgroud)

在前4个示例中,我可以看到python正在实现(如文档所述)~x = -(x+1),输入被视为int,即使它是布尔值.因此,对于标量布尔值,~不被视为逻辑否定.并非在使用int类型的布尔值定义的numpy数组上的行为相同.

~那么为什么在布尔数组上作为逻辑否定运算符工作(另请注意:~numpy.isfinite(numpy.inf) -> True?)?

我必须not()在标量上使用它是非常烦人的,但是not()无法否定数组.然后对于一个数组,我必须使用~,但~不会否定一个标量......

python boolean numpy multidimensional-array

35
推荐指数
1
解决办法
9423
查看次数

为什么Java没有真正的多维数组?

TL; DR版本,对于那些不想要背景的人,是以下具体问题:

为什么Java没有真正的多维数组的实现?有坚实的技术原因吗?我在这里错过了什么?

背景

Java在语法级别具有多维数组,可以声明

int[][] arr = new int[10][10];
Run Code Online (Sandbox Code Playgroud)

但似乎这真的不是人们所期望的.它不是让JVM分配足够大的连续RAM块来存储100 int秒,而是作为ints 的数组阵列出现:所以每个层都是一个连续的RAM块,但整体而言并非如此.arr[i][j]因此访问速度相当慢:JVM必须这样做

  1. 找到int[]存储的arr[i];
  2. 索引这个找到int存储的arr[i][j].

这涉及查询对象从一层到另一层,这是相当昂贵的.

为什么Java会这样做

在一个层面上,不难看出为什么这不能被优化为简单的扩展和添加查找,即使它们都被分配在一个固定块中.问题是arr[3]它本身就是一个引用,它可以被改变.因此,尽管数组具有固定大小,但我们可以轻松编写

arr[3] = new int[11];
Run Code Online (Sandbox Code Playgroud)

现在,由于这一层已经成长,因此缩放和加载是固定的.您需要在运行时知道是否所有内容仍然与以前相同.此外,当然,这将被分配到RAM中的其他地方(它必须是,因为它比它更换的更大),所以它甚至不适合扩展和添加.

这有什么问题

在我看来,这并不理想,这有两个原因.

首先,它很.我使用这些方法运行的测试用于求和单维或多维数组的内容,对于多维情况(a 和a 分别填充随机值,运行1000000次,温度)几乎是两倍长(714秒对371秒)高速缓存).int[1000000]int[100][100][100]int

public static long sumSingle(int[] arr) {
    long total = 0;
    for (int i=0; i<arr.length; i++)
        total+=arr[i];
    return total;
}

public static long sumMulti(int[][][] arr) {
    long total = 0; …
Run Code Online (Sandbox Code Playgroud)

java arrays performance multidimensional-array

35
推荐指数
4
解决办法
6726
查看次数

类别和子类别的PHP树结构,不循环查询

我正在尝试创建一个包含任意数量子类别的类别列表,其中子类别也可以有自己的子类别.

我从Mysql数据库中选择了所有类别,猫在标准关联数组列表中,每个类别都有一个id,name,parentid,如果它是最高级别,则parentid为0.

我基本上希望能够获取单级别的猫数组并将其转换为多维数组结构,其中每个类别都可以包含一个包含子数组的元素.

现在,我可以通过循环查询每个类别来轻松实现这一点,但这远非理想,我试图在数据库上没有任何额外的命中.

我知道我需要一个递归函数.任何人都可以指出我正确的方向为这种树型结构?

干杯

php arrays tree recursion multidimensional-array

34
推荐指数
2
解决办法
6万
查看次数

如何更改数组维度的顺序

如何重新排序n维数组的尺寸.例如,如果我有一个三维销售数据数组,其中第一个维度代表日期,第二个维度代表商店,第三个维度是部门.如何转换数组以使第一个维度为Store,第二个维度为Department,第三个维度为Date.这只是一个例子.我希望有一个普遍的解决方案.

r multidimensional-array

34
推荐指数
1
解决办法
1万
查看次数

NumPy的轴参数如何工作?

有人能解释axisNumPy中的参数究竟是什么吗?

我非常困惑.

我正在尝试使用该功能 myArray.sum(axis=num)

起初我认为如果数组本身是3维,axis=0将返回三个元素,由同一位置中所有嵌套项的总和组成.如果每个维度包含五个维度,我希望axis=1返回五个项目的结果,依此类推.

然而事实并非如此,文档并没有很好地帮助我(他们使用3x3x3阵列,因此很难说出发生了什么)

这是我做的:

>>> e
array([[[1, 0],
        [0, 0]],

       [[1, 1],
        [1, 0]],

       [[1, 0],
        [0, 1]]])
>>> e.sum(axis = 0)
array([[3, 1],
       [1, 1]])
>>> e.sum(axis=1)
array([[1, 0],
       [2, 1],
       [1, 1]])
>>> e.sum(axis=2)
array([[1, 0],
       [2, 1],
       [1, 1]])
>>>
Run Code Online (Sandbox Code Playgroud)

显然,结果并不直观.

python arrays numpy multidimensional-array numpy-ndarray

34
推荐指数
4
解决办法
1万
查看次数