帮助。
我在SQL中有两个表(注册人和合作伙伴),它们都有几列,但有两列具有唯一值(在表中),SequenceNo和Submit。 我正在尝试使用这些列中的任何一列来查找合作伙伴表中的匹配行。 所有这些数据都通过网站上的表格放入表格中。
我拥有的代码如下:
<?PHP
$r = "regsandbox";
$p = "regsandboxpart";
$db = JFactory::getDBO();
$sql = "SELECT * FROM `" .$r. "`ORDER BY `School` , `StudentLastName`";
$db->setQuery($sql);
$result = $db->query();
$schoolrows = $db->loadAssocList();
$plena = sizeof($schoolrows);
$sql = "SELECT * FROM `" .$p. "`";
$db->setQuery($sql);
$result = $db->query();
$partnerrows = $db->loadAssocList();
$plen = sizeof($partnerrows);
echo "<table>";
$school = null;
for ($i = 0; $i<sizeof($schoolrows); $i++) {
$row = $schoolrows[$i];
$group = $row ["Group"];
$submission = $row["Submission"];
$key = array_search($submission,$partnerrows);
$partners = $partnerrows [$key];
$lasta = $partners ["P1LastName"];
$lastb = $partners ["P2LastName"];
$firsta = $partners ["P1FirstName"];
代码的其余部分无关紧要,因为$submission返回正确的针,但是在搜索大海捞针时,结果始终为 null。
我是 php 的新手,所以边走边学,但我不明白为什么这不起作用。
谢谢马克
你写道:
$submission = $row["Submission"];
$key = array_search($submission,$partnerrows);
$partnerrows
是一个多维数组,因此搜索失败。
要在多维数组中搜索键,您可以使用:
在 PHP 版本>= 5.5 上:
$key = array_search( $submission, array_column( $partnerrows, 'Submission' ) );
在 PHP 版本 <5.51 上:
if( !function_exists( 'array_column' ) )
{
function array_column( array $input, $column_key, $index_key = null )
{
$result = array();
foreach( $input as $k => $v )
{
$result[ $index_key ? $v[ $index_key ] : $k ] = $v[ $column_key ];
}
return $result;
}
}
$key = array_search( $submission, array_column( $partnerrows, 'Submission' ) );
1 来自 https://gist.github.com/TorbenKoehn/5866154 的原始代码