您好在另一篇文章中,我学习了如何将文本文件中的数据读入数组。在脚本读取文本文件之后,这是生成的数据数组。
我尝试做的只是返回“键”键。或记录搜索字符串出现的数字,即如果我传递参数' muscle3'它应该返回' 3'因为它是第三排'在表格中
然后我可以使用$ arrayTable [$ keyVal] [2]和$ arrayTable [$ keyVal] [3]
轻松提取其他列正如您所见,作为搜索字段的pageName存储在$ arrayTable [$ keyVal] [2]中 通过从搜索中获取$ keyValue,我可以获得其他页面。
即。 mygreatwebsite.com/?page=muscle3 然后它从数组中获取数据
但是当我运行下面的脚本时,它会给出以下错误消息
"警告:为foreach()"
提供的参数无效$page=$_REQUEST['page'];
$keyVal = searchForId($page,$arrayTable); // this is the value I want returned
function searchForId($id, $array) {
foreach ($array as $key => $val) {
print_r ($val); print "<br><br>";
if ($val === $id) {
return $key;
}
}
return null;
here is the output from the above script
Array ( [0] => muscle1 [1] => arrayField [2] => description )
Array ( [0] => muscle2 [1] => arrayField2 [2] => description )
Array ( [0] => muscle3 [1] => arrayField3 [2] => description )
有人可以帮我解决这个问题吗?谢谢!
有人询问如何定义数组表:这里是
$i=0;
if (($handle = fopen($inputFile, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$arrayTable[$i] = $data; $i++;
}
fclose($handle);
}
输入文件是一个CSV文件,第一行包含列标题,每个后续行包含数据 第一列称为&#39; pageName&#39; 我想要做的就是搜索&#39;对于&#39; pageName&#39;然后返回哪条记录。 即肌肉1记录#1肌肉3记录#3
这是一个简单的例子 - CSV文件比这复杂得多。