Php 循环通过一组简单的HTMLDOM链接,并基于唯一id插入mySQL表
我有一个名为Php 循环通过一组简单的HTMLDOM链接,并基于唯一id插入mySQL表,php,multidimensional-array,simple-html-dom,Php,Multidimensional Array,Simple Html Dom,我有一个名为$trans的多维数组,如下所示: Array ( [0] => Array ( [0] => 1 [1] => Vol 19, No 2 (2018) [2] => Africa Sanguine [3] => https://www.ajol.info/index.php/asan/issue/view/17048
$trans
的多维数组,如下所示:
Array
(
[0] => Array
(
[0] => 1
[1] => Vol 19, No 2 (2018)
[2] => Africa Sanguine
[3] => https://www.ajol.info/index.php/asan/issue/view/17048
)
[1] => Array
(
[0] => 2
[1] => Vol 19, No 1 (2017)
[2] => Africa Sanguine
[3] => https://www.ajol.info/index.php/asan/issue/view/16693
)
)
我一直在尝试根据每个数组中的url提取元数据,并将其与每个数组的唯一id进行匹配,在本例中,数组0的id为1,数组1的id为2。我已经成功地提取了元数据,但是在将元数据插入mysql表时,我遇到了一些问题,所有记录都分配了最后插入的数组的id。e、 例如,所有记录都分配了id 1。我如何解决这个问题
我用来获取元数据的代码如下所示
//create a multidemnsional array called $trans
array_unshift($citation, null);
$trans = call_user_func_array('array_map', $citation);
print_r($trans);
//loop through trans and get metadata for url found in $value3
foreach($trans as $key => $value){
//echo $value[3].'<br>';
$html2 = file_get_html($value[3]);
foreach($html2->find('table[class="tocArticle"]') as $div2) {
$DOM = new DOMDocument();
$DOM->loadHTML($div2);
$Detail = $DOM->getElementsByTagName('td');
$i = 0;
$j = 0;
foreach($Detail as $sNodeDetail) {
$aDataTableDetailHTML[$j][] = trim($sNodeDetail->textContent);
$j = $i % count($aDataTableDetailHTML[$j]) == 0 ? $j + 1 : $j;
}
}
}
print_r($aDataTableDetailHTML);
//创建一个名为$trans的多节点数组
数组_unshift($引文,null);
$trans=调用用户函数数组('array\u map',$引文);
印刷(trans);
//循环遍历trans并获取$value3中找到的url的元数据
foreach($trans as$key=>$value){
//echo$value[3]。
;
$html2=file_get_html($value[3]);
foreach($html2->find('table[class=“tocaracter”]”)作为$div2){
$DOM=新的DOMDocument();
$DOM->loadHTML($div2);
$Detail=$DOM->getElementsByTagName('td');
$i=0;
$j=0;
foreach($sNodeDetail){
$adatabledetailhtml[$j][]=trim($sNodeDetail->textContent);
$j=$i%count($AdatableDetailHTML[$j])==0?$j+1:$j;
}
}
}
打印(AdatableDetailHTML);
包含有问题的代码将有助于解决此问题。@Nigel我刚刚将问题编辑为包含代码如果您要查找的值始终是项[0],则只需使用var_dump(array_column($Detail,0))代码>变量转储返回NULL。我实际上在寻找项目[0]、项目[1]和项目[3]