通过比较它们的值将数组放入另一个数组中

时间:2013-11-02 01:59:34

标签: php arrays multidimensional-array foreach explode

我有两个阵列。阵容A有足球运动员位置,阵列B有足球运动员。 每位球员都有一个名字和位置。

现在我想在数组A的不同位置拆分数组B并将其重新排序在一个数组中,就像数组A中的位置一样排序。

数组看起来像这样:

数组A     阵列(tor,             阿勃维尔,             mittelfeld,             sturm)

数组B     Array(Array(Rocky,Sturm),             阵列(凯文,阿布维尔))

我的结果数组应如下所示:

Array ( tor, 
        abwehr(Array ( Kevin, Abwehr )), 
        mittelfeld, 
        sturm(Array ( Rocky, Sturm )) )

我的代码到现在为止:

$positionen = array("tor", "abwehr", "mittelfeld", "sturm");
foreach($positionen as $position) {

$team = $extern_source->api();  
foreach($team['data'] as $team) {


//need to explode this to filter relevant infos
$team_info = explode("\n",$team['info']);

$sp_name=$team_info[1];
$sp_posi=$team_info[4];
//put together the single infos in a new array
...

我真的希望你理解我的问题。 它在我的大脑中打结。如此复杂:D

非常感谢! 来自德国的致敬。

2 个答案:

答案 0 :(得分:0)

foreach($arrayB as $player){
 $position[$player[1]][] = $player[0];
}

答案 1 :(得分:0)

首先在第一个foreach之前准备最终数组:

$data = array_fill_keys($positionen, array());

然后在获取名称位置后,执行以下操作:

$data[$sp_posi][] = $sp_name;

注意:array_fill_keys需要PHP 5.2或更高版本