【发布时间】:2019-08-27 04:13:24
【问题描述】:
我正在尝试创建一个搜索功能来搜索包含在 txt 文件中的数据中的名称。
我有这样的数据:
dimitri, 1998, php
nikolai, 1998, php
yuri, 1998, php
alyosha, 1998, php
我想出了一个想法,将这些数据更改为这样的数组:
Array
(
[0] => dimitri, 1998, php
[1] => nikolai, 1998, php
[2] => yuri, 1998, php
[3] => alyosha, 1998, php
)
然后再多分成为多维
Array
(
[0] => dimitri
Array(
[0] => 1998
[1]=> php
[1] => nikolai
Array(
[0] => 1998
[1]=> php
[2] => yuri
Array(
[0] => 1998
[1]=> php
[3] => alyosha
Array(
[0] => 1998
[1]=> php
)
这样我就可以通过键搜索名称。
现在我不知道该怎么办了。我尝试使用foreach() 函数来分解数组中的值,但是它不起作用,它产生了另一个问题,数组只显示了一些字符。
尝试
$array = array();
$split = explode('\n', file_get_contents($file));
foreach ($split as $content){
$array = array_filter(array_map("trim", explode("\n", $content)));
$array1 = array();
$split2 = explode(", ", $array);
foreach($array as $row){
$array1[$row[1]][$row[2]][]=$row[0];
}
}
HTML
<form action="search.php" method="POST">
<input name="search_function" type="text" placeholder="Search who you want">
<input type="submit" name="search" value="Search">
</form>
关于我的搜索,我正在考虑使用 post,如果在搜索输入中正确输入数据,数据将显示。
【问题讨论】:
-
这可能会有所帮助 - stackoverflow.com/a/12315645/5284695
-
你为什么要在
\n两次次拆分它? (好吧,您只是在尝试,因为您在第一次爆炸中使用的'\n'不是 换行符。)您将其读入数组的整个逻辑太复杂了 - 请改用file(请务必注意手册中关于处理换行符的内容),然后从那里获取。 -
@AakashMartand 我认为这个解决方案只有在你有一个包含键和值的数组时才有效。我有一个包含一个值的数组,其中包含许多我要拆分的信息,并且搜索可以做到,对吗?我想不出任何解决方案
-
您的数据似乎是 csv 格式。将您的数据放在一个变量中(比如说 $datas),然后:
array_map('str_getcsv', explode('\n', $datas))
标签: php html arrays string search