同一键需要两个数组索引-PHP

问题描述 投票:0回答:1

“ 0012”具有相同的键,但是需要两个数组索引,找不到问题。有编码问题吗?

文件内容-

0012 2020-01-27 18:45:00
0012 2020-01-28 09:15:00
0012 2020-02-05 18:15:00
0012 2020-02-13 19:15:00
0012 2020-02-15 09:30:00
0012 2020-02-15 15:30:00
0118 2020-02-09 10:20:00
0118 2020-02-09 20:15:00
0118 2020-02-10 10:25:00
0118 2020-02-10 20:15:00
0118 2020-02-12 19:40:00
0118 2020-02-13 20:15:00
0118 2020-02-16 00:20:00
0118 2020-02-16 08:10:00
0036 2020-02-11 18:10:00
0036 2020-02-12 22:15:00
0036 2020-02-16 19:30:00
0036 2020-02-17 09:00:00
0036 2020-02-17 20:30:00
0036 2020-02-18 09:00:00
0323 2020-01-16 09:25:00
0323 2020-01-16 22:30:00
0323 2020-01-17 18:20:00

脚本-

$filename = 'file.txt';

$array = explode("\n", file_get_contents($filename));
$array = array_filter($array);
$empArr = array();
foreach($array as $line){
    list($empId, $date, $time) = explode(" ", $line);
    $empId = (string) trim($empId);

    $empArr[$empId][] = $date . ' ' .$time;
}

echo "<pre>";
print_r($empArr);
echo "</pre>";

输出-

Array
(
    [0012] => Array
        (
            [0] => 2020-01-27 18:45:00
        )

    [0012] => Array
        (
            [0] => 2020-01-28 09:15:00
            [1] => 2020-02-05 18:15:00
            [2] => 2020-02-13 19:15:00
            [3] => 2020-02-15 09:30:00
            [4] => 2020-02-15 15:30:00
        )

    [0118] => Array
        (
            [0] => 2020-02-09 10:20:00
            [1] => 2020-02-09 20:15:00
            [2] => 2020-02-10 10:25:00
            [3] => 2020-02-10 20:15:00
            [4] => 2020-02-12 19:40:00
            [5] => 2020-02-13 20:15:00
            [6] => 2020-02-16 00:20:00
            [7] => 2020-02-16 08:10:00
        )

    [0036] => Array
        (
            [0] => 2020-02-11 18:10:00
            [1] => 2020-02-12 22:15:00
            [2] => 2020-02-16 19:30:00
            [3] => 2020-02-17 09:00:00
            [4] => 2020-02-17 20:30:00
            [5] => 2020-02-18 09:00:00
        )

    [0323] => Array
        (
            [0] => 2020-01-16 09:25:00
            [1] => 2020-01-16 22:30:00
            [2] => 2020-01-17 18:20:00
        )

    [] => Array
        (
            [0] =>  
        )

)
php arrays
1个回答
0
投票

尝试消除所有不可打印的字符:

$empId = preg_replace('/[\x00-\x1F\x7F-\xFF]/', '', trim($empId));
© www.soinside.com 2019 - 2024. All rights reserved.