【发布时间】:2017-05-05 09:57:28
【问题描述】:
我查看了所有类似的问题和示例(有很多),但仍然无法使其正常工作(尽管我认为我很接近)。
我有一组从文本文件中提取的员工时间表...
schedule.txt:
123,乔,20120208,0845,1645 123,乔,20120209,0800,1600 456,苏,20120208,0900,1700 456,苏,20120209,0700,1500 ...我生成数组的代码是:
$schedule = file_get_contents('./schedule.txt'); $s = explode("\n", $schedule); 对于 ($i = 0; $i输出是:
大批 ( [0] => 数组 ( [0] => 123 [1] => 乔 [2] => 20120208 [3] => 0845 [4] => 1645 ) [1] => 数组 ( [0] => 123 [1] => 乔 [2] => 20120209 [3] => 0800 [4] => 1600 ) [2] => 数组 ( [0] => 456 [1] => 苏 [2] => 20120208 [3] => 0900 [4] => 1700 ) [3] => 数组 ( [0] => 456 [1] => 苏 [2] => 20120209 [3] => 0700 [4] => 1500 ) )我试图在一个新的多维数组中按 ID 对员工进行分组,输出如下:
大批 ( [123] => 数组 ( [0] => 数组 ( [0] => 乔 [1] => 20120208 [2] => 0845 [3] => 1645 ) [1] => 数组 ( [0] => 乔 [1] => 20120209 [2] => 0800 [3] => 1600 ) ) [456] => 数组 ( [0] => 数组 ( [0] => 苏 [1] => 20120208 [2] => 0900 [3] => 1700 ) [1] => 数组 ( [0] => 苏 [1] => 20120209 [2] => 0700 [3] => 1500 ) ) )我一生都无法思考如何将现有数组更改为这个新的(不同的)输出...... 我正在尝试这个但一无所获:
$newArr = 数组(); foreach($s as $k => $v) { if(!isset($newArr[$v[0]])) { $newArr[$v[0]] = array(); } $newArr[$v[0]][] = array($v[0]); }虽然我现在的输出是:
大批 ( [123] => 数组 ( [0] => 数组 ( [0] => 123 ) [1] => 数组 ( [0] => 123 ) ) [456] => 数组 ( [0] => 数组 ( [0] => 456 ) [1] => 数组 ( [0] => 456 ) ) )有什么想法吗?我知道我的代码中缺少某些内容:
$newArr[$v[0]][] = array($v[0]);我尝试将其更改为:
$newArr[$v[0]][] = 数组(0 => $v[1], 1 => $v[2], 2 => $v[3], 3 => $v[4]) ;这给了我正确的输出,但我现在得到未定义的偏移错误。另外,如果子数组中的键数发生变化,这段代码现在仅限于我明确输入的 4 个...
【问题讨论】:
标签: php multidimensional-array grouping