2015-06-11 52 views
1

我有三个数组数量相同的项,其中值可以在每个数组内和数组之间相同。从三个数组创建多维数组

$areas 
0 => 1 
1 => 3 
2 => 3 
3 => 5 

$targets 
0 => 1 
1 => 2 
2 => 3 
3 => 3 

$ratings 
0 => 1 
1 => 1 
2 => 2 
3 => 3 

我想创建一个多维数组($元素)通过访问$区和$目标的值作为键显示$收视率的值。

Example: 
$elements[area][target] = rating 
$elements[1][1] = 1 
$elements[3][2] = 1 
$elements[3][3] = 2 
$elements[5][3] = 3 

我已经尝试了很多的功能,翻转和合并的阵列,但在挣扎的原因很多,但主要是因为翻转相同的值时,使 阵列不同的项目的数量。

任何人都可以帮助我实现我想要的吗?

+2

您将遇到问题,该密钥必须是唯一的! – Rizier123

+0

我已经提出的最好的方法是从$ elements = array_flip($ areas)开始,然后使这个数组的值为null。这给了我$元素1 => null,3 => null,5 => null。 从那里,我需要一种方法将相关的目标ID添加到相应的区域ID,但我还没有想出办法做到这一点。 我之所以没有发布这个尝试,是因为我认为必须有一个我没有想到的更好的方式,我很抱歉。 – Bergkamp10

+1

@ Bergkamp10你的第一个问题是,你不能有重复的键,所以你不能得到你的预期输出,它永远不会工作 – Rizier123

回答

0

你永远不会真的想使用这种结构,因为你基本上试图使用可能未设置的数字键。无论如何,所有丢失的键都会被填满,但不会得到最终值(可能是空字符串,如果幸运的话可以为空)。

我建议你从另一个角度来看待这个问题,因为根本没有正确的方法来解决这个问题。

我的建议将作为创建multidementional阵列时这种类型的阵列的非常经常用于php associative arrays

阅读起来。 在这个数组中,你基本上设置了key => value对,因为你可以使用字符串作为键,所以很容易创建一个有意义的数组。

$people = array(
    array(
     'firstname' => 'John', 
     'surname' => 'Doe', 
     'age' => 29, 
     'sex' => 'Male' 
     //etc... 
    ); 
); 

现在,如果你会遍历所有的主阵列,你会得到一个数组回来与key => value对这些给你一些有用的信息,而不是很多的数字跳铁圈;)

希望它可以帮助, Sidney