PHP 中删除分隔符后如何显示数组中的数据?

How to display data from array after removing delimiters in PHP?

我创建了一个 HTML 表单,用户可以在其中上传文本文件,上传后,文本文件的内容将显示在同一页面中。示例文本文件的内容格式如下:

"last_name(空格)first_name(空格)middle_initial", "性别", "年龄"**

例如 "ADKINS(空格)ADELE(空格)L", "F", "26"

姓氏、名字和中间名首字母以空格分隔。我想要实现的输出是这样的:

Last Name: ADKINS

First Name: ADELE

Middle initial: L

Gender: F

Age: 26

我已经使用函数preg_split去掉了引号和逗号。我还将文本文件的内容存储在一个数组中。我的问题是,每当我显示数组中每个索引的值时,我只会得到 ADKINS。不显示名字和中间名首字母,因为它们位于不同的数组位置。 [这部分已解决:另外,我无法显示性别和年龄。]

这是我显示信息的代码:

foreach($rows as $row => $data){
$row_data = preg_split('/[",]/',$data);

$info[$row]['lastname'] = $row_data[1];
$info[$row]['firstname'] = $row_data[2];
$info[$row]['middle'] = $row_data[3];
$info[$row]['gender'] = $row_data[4];
$info[$row]['age'] = $row_data[5];  

echo 'Last Name: ' . $info[$row]['lastname'] . '<br>'
echo 'First Name: ' . $info[$row]['firstname'] . '<br>'
echo 'Middle Initial: ' . $info[$row]['middlename'] . '<br>'
echo 'Gender: ' . $info[$row]['lastname'] . '<br>'
echo 'Age: ' . $info[$row]['lastname'] . '<br>'`

似乎最简单的方法实际上是这样的:

$row_data = explode(',', $data);
$row_data = str_replace('"', '', $row_data);
$names = explode(' ', $row_data[0]);

echo 'Last Name: ' . $names[1] . '<br>'
echo 'First Name: ' . $names[0] . '<br>'
echo 'Middle Initial: ' . $names[2] . '<br>'
echo 'Gender: ' . $row_data[1] . '<br>'
echo 'Age: ' . $row_data[2] . '<br>'`
foreach($rows as $data) {
    $arr = json_decode("{".$data."}");

    if(count($arr) == 3) {
        $names = explode(' ', $arr[0]);

        if(count($names) == 3) {
            echo 'Last Name: ' . $names[1] . '<br>';
            echo 'First Name: ' . $names[0] . '<br>';
            echo 'Middle Initial: ' . $names[2] . '<br>';
            echo 'Gender: ' . $arr[1] . '<br>';
            echo 'Age: ' . $arr[2] . '<br>';
        }
    }
}

如果你想使用正则表达式,你可以使用下面的代码

preg_match_all("/(\w|\d)+/", $data, $output);
print_r($output[0]);