创建键和值依赖于其他数组的数组


Create array whose keys and values depend of other 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'];
}

在行中:

if ( ! in_array( $molvalue, $termslist ) )

你有一个小错误,它应该是:

if ( ! in_array( $molvalues, $termslist ) )

然后在这一行:

$molnumbers [$ancientvalue['molnames']] = $count3['quantities'];

$ancientvalue本身已经是值(或molname),而不是数组本身。因此,该行只需要是:

    $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.'%''';

更改:

$molnumbers [$ancientvalue['molnames']] = $count3['quantities'];

收件人:

$molnumbers[$ancientvalue['molnames']] = $count3['quantities'];

或者:

$molname = $ancientvalue['molnames'];
$molnumbers[$molname] = $count3['quantities'];