好的,我有一个txt文件,它是一个数据源,每一行都是一组[tab]分隔的元素,用于单个项目,如:
name value1 value2 url
name value1 value2 url
等等.. 我正在读取文件并使每一行成为数组中的单个元素,并且行中的每个元素都是下一个子数组中的单个元素。(仅获取10个用于测试,第1行是标题&#39 ;为什么我从第一个元素开始。)
$feed = file_get_contents("file.txt");
$lines = explode("\n", $feed);
$prods = array();
for ($i=1; $i < 11; $i++) {
array_push($prods, explode("\t", $lines[$i]));
}
所以在这一点上,$ prods数组看起来像:
Array
(
[0] => Array
(
[0] => name1
[1] => somedata1
[2] => somedata2
[3] => http://someurl.com
)
[2] => Array
(
[0] => name2
[1] => somedata1
[2] => somedata2
[3] => http://someurl.com
)
)
然后是foreach循环从URL获取数据并将其作为第4个元素添加到这些子数组中:
foreach ($prods as $item) {
$url = $item[3];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
preg_match('@some regex here@is', $result, $match);
if (sizeof($match) > 0) {
$item[] = $match[1];
} else {
$item[] = 'empty';
}
echo '<pre>'; //
print_r($item); // this gives me the nice output of 4 elements arrays with the fetched data where I want it to be
echo '</pre>'; //
}
这里的一切都很好但是如果我在它之外的循环之后打印$ prods数组,它会让我返回与foreach循环之前相同的未触及数组。
问题是,如何保存对循环中数组的更改,以便我可以在循环外访问修改后的数组?