Php 需要从两个多维数组中筛选重复项的帮助,然后仅创建唯一的数组
我正在尝试从数组中筛选和删除重复值,并将新值添加到表中。我尝试使用以下代码。我已经做了几个小时了,请帮忙Php 需要从两个多维数组中筛选重复项的帮助,然后仅创建唯一的数组,php,multidimensional-array,Php,Multidimensional Array,我正在尝试从数组中筛选和删除重复值,并将新值添加到表中。我尝试使用以下代码。我已经做了几个小时了,请帮忙 $tmpArray = array(); while($row = mysqli_fetch_array($result)) { $duplicate = false; foreach($recordd as $data2) { if($row['SalesDescription'] === $data2['fields']['WO Notes'] ) $dup
$tmpArray = array();
while($row = mysqli_fetch_array($result)) {
$duplicate = false;
foreach($recordd as $data2) {
if($row['SalesDescription'] === $data2['fields']['WO Notes'] ) $duplicate = true;
}
if($duplicate === false)
$tableId = 50240233993;
$tmpArray = $row;
$records=array(
'SO Qty' => 'Test',
'WO Qty' => $tmpArray['Reference'],
'SO Date' => $tmpArray['TransactionDate'],
'Color' => $tmpArray['DistNumber'],
'SO#' => $tmpArray['Reference'],
'Promised Date' => $tmpArray['ItemId'],
'WO Notes' => $tmpArray['SalesDescription'],
);
$tv->addRecord($tableId, $records);// call to addRecord() function which adds data to Cloud table
}
这是旧唱片
Array (
[id] => 56554535376
[table_id] => 50240233993
[created] => 2014-10-30T09:52:15-0600
[updated] => 2014-10-30T09:52:15-0600
[created_by] => 3045444045538
[fields] => Array (
[Work Order] => 87565
[SalesDescription] => 18X5X12 1/8 SOLID FORKLIFT TIRE PRESS-ONS
[SO#] => 14061
[SO Date] => 2013-10-16T00:00:00-0600
[Promised Date] => 2014-10-30T09:52:15-0600
[SO Qty] => 1.0000000000000000000
[WO Qty] => 14061
[Color] => 2
[s] => 2
[SHIP BY] => 2014-10-29
[CALC PROMISED DATE] => 2014-10-30
)
这是新唱片的样子
Array (
[0] => CAS001
[CustomerId] => CAS001
[1] => CASH CUSTOMER
[Customer_Bill_Name] => CASH CUSTOMER
[2] => Will Call
[WhichShipVia] => Will Call
[3] => [INV_POSOOrderNumber] => [4] => 2013-07-24
[ShipByDate] => 2013-07-24
[5] => [GoodThruDate] => [6] => [CustomerSONo] => [7] => 13867
[Reference] => 13867 [8] => 2013-07-24
[TransactionDate] => 2013-07-24
[9] => 1
[DistNumber] => 1
[10] => 2.0000000000000000000
[Quantity] => 2.0000000000000000000
[11] => 121130581
[ItemId] => 121130581
[12] => 18X5X12 1/8 SOLID FORKLIFT TIRE PRESS-ONS
[SalesDescription] => 18X5X12 1/8 SOLID FORKLIFT TIRE PRESS-ONS
[13] => [PartNumber] => [14] => 18X5X12 1/8 SOLID FORKLIFTTIRE
[ItemDescription] => 18X5X12 1/8 SOLID FORKLIFTTIRE
)
正如我在评论中所说,您缺少一个{}块。要充分解释:
if($duplicate === false) ///<-- no brace
$tableId = 50240233993;
$tmpArray = $row; //<-- this will execute no matter the value of $duplicate
$records=array(
'SO Qty' => 'Test',
'WO Qty' => $tmpArray['Reference'],
'SO Date' => $tmpArray['TransactionDate'],
'Color' => $tmpArray['DistNumber'],
'SO#' => $tmpArray['Reference'],
'Promised Date' => $tmpArray['ItemId'],
'WO Notes' => $tmpArray['SalesDescription'],
);
$tv->addRecord($tableId, $records);// call t...
如果$duplicate===false{…要做的事情…}则尝试此方法。如果$duplicate===false,则不尝试此方法。因此,这里有两件事。首先,您可以记住PHP数组实际上只是散列数组的混合体,并创建一个O1查找数组,该数组包含可以检查的已看到的值。第二,你的意思是如果$duplicate===false只设置$tableId=50240233993,但其他一切都正常吗?@mr.stobbe更正如果$duplicate==false,那么将唯一记录添加到$tableId=50240233993,这一行是$tv->addRecord$tableId,$records调用函数,该函数接受tableID和$records并将记录添加到表中。@Kuku-请参阅我的答案,您有一个逻辑错误。
if($duplicate === false){
$tableId = 50240233993;
}
$tmpArray = $row; //<-- this will execute no matter the value of $duplicate
....
if($duplicate === false){
$tableId = 50240233993;
$tmpArray = $row;
$records=array(
'SO Qty' => 'Test',
'WO Qty' => $tmpArray['Reference'],
'SO Date' => $tmpArray['TransactionDate'],
'Color' => $tmpArray['DistNumber'],
'SO#' => $tmpArray['Reference'],
'Promised Date' => $tmpArray['ItemId'],
'WO Notes' => $tmpArray['SalesDescription'],
);
$tv->addRecord($tableId, $records);// call t
}