Php 创建其键和值依赖于其他数组的数组
有一些主题缩小了我的问题范围,但没有人允许我解决它。我有一个术语的csv文件,我想从中计算数据库表中的数字,并将结果写入一个新的csv文件。 我需要创建一个新数组,其中每个键都是第一个数组的一个项,值是数据库中相关记录的数量。 以下是一些输入示例: 乳糖 丝氨酸 我想得到这样的东西: 乳糖,25 丝氨酸,3 因此,我创建了一个数组,其值是csv文件中的术语。 然后在sql查询中输入该数组的值。 然后,我一直无法在互联网或php文档中找到正确的方法。最后一行完全失败了,但我尝试了,因为它似乎是管理我任务的更狭隘的手段 有人能帮我吗 提前谢谢Php 创建其键和值依赖于其他数组的数组,php,arrays,Php,Arrays,有一些主题缩小了我的问题范围,但没有人允许我解决它。我有一个术语的csv文件,我想从中计算数据库表中的数字,并将结果写入一个新的csv文件。 我需要创建一个新数组,其中每个键都是第一个数组的一个项,值是数据库中相关记录的数量。 以下是一些输入示例: 乳糖 丝氨酸 我想得到这样的东西: 乳糖,25 丝氨酸,3 因此,我创建了一个数组,其值是csv文件中的术语。 然后在sql查询中输入该数组的值。 然后,我一直无法在互联网或php文档中找到正确的方法。最后一行完全失败了,但我尝试了,因为它似乎是管理
$termslist= array();
$file = fopen('fileterms.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
//$line is an array of the csv elements
foreach ($line AS $molindice => $molvalues)
{
if ( ! in_array( $molvalue, $termslist ) )
{array_push($termslist, $molvalues);}
}
}
fclose($file);
//print_r ($termslist);
$molnumbers = array();
foreach ($termslist as $ancientkey => $ancientvalue)
{
echo $ancientvalue;
$sql3 = "SELECT content from mols WHERE content like '% $ancientvalue %'";
$result3 = mysql_query($sql3)or die(mysql_error());
$count3 = mysql_num_rows($result3);
echo $count3;
$molnumbers [$ancientvalue['molnames']] = $count3['quantities'];
}
更改:
$molnumbers [$ancientvalue['molnames']] = $count3['quantities'];
致:
或:
行中:
if ( ! in_array( $molvalue, $termslist ) )
您有一个小错误,应该是:
if ( ! in_array( $molvalues, $termslist ) )
那么在这一行:
$molnumbers [$ancientvalue['molnames']] = $count3['quantities'];
$ancientvalue本身已经是值(或名称),而不是数组本身。
因此,线路只需:
$molnumbers [$ancientvalue] = $count3['quantities'];
然后它应该将数字放入数组的正确部分。
对于sql本身:
$sql3 = "SELECT content from mols WHERE content like '% $ancientvalue %'";
在我看来,您正在搜索%BLANKancientvalueBLANK%,如果不是这样的话
您希望在此处执行此操作,但要查找%ancientvalue%,应将该行修改为:
$sql3 = 'SELECT content from mols WHERE content like \'%'.$ancientvalue.'%\'';
谢谢你们两位!我会根据你的建议进行更改,并立即进行测试
$sql3 = "SELECT content from mols WHERE content like '% $ancientvalue %'";
$sql3 = 'SELECT content from mols WHERE content like \'%'.$ancientvalue.'%\'';