多维数组搜索从文件中读取PHP

时间:2014-05-11 14:38:46

标签: php arrays multidimensional-array

您好在另一篇文章中,我学习了如何将文本文件中的数据读入数组。在脚本读取文本文件之后,这是生成的数据数组。

我尝试做的只是返回“键”键。或记录搜索字符串出现的数字,即如果我传递参数' 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文件比这复杂得多。

0 个答案:

没有答案