Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 文件读取和多维数组_Php_Arrays - Fatal编程技术网

Php 文件读取和多维数组

Php 文件读取和多维数组,php,arrays,Php,Arrays,这是我正在阅读的文本文件的内容 All Guests Listed Below ID: SeanCarrington [x] Name: Sean [x] Email: Carrington [x] ID: ChrisCarrington [x] Name: Chris [x] Email: Carrington [x] 我想提取每个客人的ID,所以我写了这个 preg_match_all("/(ID: )(.*)(\[x\])/", $fileContent, $matches); 打

这是我正在阅读的文本文件的内容

All Guests Listed Below

ID: SeanCarrington [x]
Name: Sean [x]
Email: Carrington [x]

ID: ChrisCarrington [x]
Name: Chris [x]
Email: Carrington [x]
我想提取每个客人的ID,所以我写了这个

preg_match_all("/(ID: )(.*)(\[x\])/", $fileContent, $matches);
打印的
$fileContent
给了我这个

Array ( [0] => Array ( [0] => ID: SeanCarrington [x] [1] => ID: ChrisCarrington [x] ) [1] => Array ( [0] => ID: [1] => ID: ) [2] => Array ( [0] => SeanCarrington [1] => ChrisCarrington ) [3] => Array ( [0] => [x] [1] => [x] ) ) 
我的目标是打印出每个用户的第2组。换句话说,他们的ID。所以目标输出是

SeanCarrington
ChrisCarrington
我试过这个

echo $matches[0][2];
echo $matches[1][2];
但是我得到了这个错误

Notice: Undefined offset: 2 in /data/helios_web/ccarrin2/IT207/lab9/convertToArray.php on line 10
Notice: Undefined offset: 2 in /data/helios_web/ccarrin2/IT207/lab9/convertToArray.php on line 11

每个用户似乎有两个组,但它们有索引0和索引1

echo $matches[0][0]; // "ID: SeanCarrington"
echo $matches[0][1]; // "ID: ChrisCarrington"
由于只需要ID名称,请在此处查看数组结构:

[2] => Array (
    [0] => SeanCarrington
    [1] => ChrisCarrington
)
此组(索引2)中有两个用户,因此使用索引2,然后使用索引0和1:

echo $matches[2][0]; // "SeanCarrington"
echo $matches[2][1]; // "ChrisCarrington"

尝试
echo$matches[2][0]啊。第一个数字2是组,第二个数字是索引?@gmustudent是的,您使用的是多维数组。第一个索引指向您正在访问的数组,然后第二个索引指向该数组中的元素。(我对我的帖子做了一个小编辑,让它更清晰一些。)首先,谢谢。你的解释很清楚。有没有办法让我在第2组的每一场比赛中都打一个循环?是的
foreach($2]匹配为$id){…}
foreach($2]匹配为$key=>$match){echo$match[2][$key];}?对不起,我是新来的,我是java人