已经在PHP中将变量定义为多维数组了吗?

时间:2018-07-02 15:40:07

标签: php

对不起,我对整个编码工作还是陌生的。我似乎无法将自己包裹在多维数组上。我正在从正在使用PHP处理的CSV文件中获取所有信息。我已经从CSV中定义了两个变量。学校和房间。 CSV上的每一行都决定了哪个学校和哪个房间在一起。 CSV中的数据将如下所示。

  

学校性别居室
  10楼F 1
  10 F F 2​​ 2
  1028 F F 1 1
  10 F F 2​​ 2
  10 F F 4 4
  1028 F F 8 8
  1026 F F 5 5
  1028 F F 1 1
  1026 F F 1 1

示例:

$school = array('10', '1028','1026')

$room = array('1','2','4','5','8'). 

首选结果:

$list = array('10' => array('1','2','4'), '1028' => array('1','8'), '1026' => array('1','5'))

学校将有多个房间 我基本上想创建一个由学校索引的新房间阵列。我尝试了很多事情,但这总是让我受益。任何提示,指针或资源将不胜感激。如果需要添加更多信息,也请告诉我。

1 个答案:

答案 0 :(得分:0)

<?php

$csv =<<<CSV
School Gender HomeRoom
10 F 1
10 F 2
1028 F 1
10 F 2
10 F 4
1028 F 8
1026 F 5
1028 F 1
1026 F 1
CSV;
foreach(explode("\n", $csv) as $line) {
    $items[] = str_getcsv($line, ' ');
}

$headings = array_shift($items);
foreach($items as $item)
    $list[$item[0]][] = $item[2];

$list = array_map('array_unique', $list);

var_export($list);

输出:

array (
    10 => 
    array (
    0 => '1',
    1 => '2',
    3 => '4',
    ),
    1028 => 
    array (
    0 => '1',
    1 => '8',
    ),
    1026 => 
    array (
    0 => '5',
    1 => '1',
    ),
)