【发布时间】:2018-06-21 15:04:59
【问题描述】:
我正在尝试将 2 组数组与相同的键 product_sku 进行比较
API 上的数组(JSON 响应)
$array1 = array (
"products" => array(
"category" => array(
array(
"product_sku" => "1",
"product_type" => "Type",
"customer_contact_name" => "Contact Name",
"customer_telephone" => "0000 000 000",
"customer_email" => "email@email.com",
"customer_postcode" => "PostCode",
"additional_info" => array(
"some information" => "some information"
),
"full_price" => "50.00",
"product_name" => "Product Name",
"product_id" => "1",
"customer_rating" => "0"
),
array(
"product_sku" => "2",
"product_type" => "Type",
"customer_contact_name" => "Contact Name",
"customer_telephone" => "0000 000 000",
"customer_email" => "email@email.com",
"customer_postcode" => "PostCode",
"additional_info" => array(
"some information" => "some information"
),
"full_price" => "100.00",
"product_name" => "Product Name",
"product_id" => "2",
"customer_rating" => "0"
)
)
)
);
本地数据库上的数组(mysqli 查询)
$array2 = array (
array(
"product_sku" => "1",
"product_type" => "Type",
"contact_name" => "Contact Name",
"phone" => "0000 000 000",
"full_price" => "0.00",
"product_name" => "Product Name",
"product_id" => "1",
"rating" => "0"
),
array(
"product_sku" => "3",
"product_type" => "Type",
"contact_name" => "Contact Name",
"phone" => "0000 000 000",
"full_price" => "80.00",
"product_name" => "Product Name",
"product_id" => "3",
"rating" => "0"
)
);
目标是
检查
$array2和$array1并且仅当product_sku匹配(存在于$array1中),从$array1获取full_price并替换$array2中的full_price值如果
$array1中的product_id在$array2中不存在,则忽略这些产品。使用
sort函数对产品价格进行排序(从低到高)
我尝试的是,部分工作但无法使用 sort 函数对产品价格进行排序(从低到高),它显示某些产品的 0.00 full_price 价值
$apiarray = $array1["products"]["category"];
foreach ($array2 as $arr2) {
foreach ($apiarray as $arr1) {
if ($arr1['product_sku']==$arr2['product_sku']) {
echo $arr2['product_sku']; // Product from $array2
echo number_format($arr1['full_price'],2); // Price from $array1
} else {
echo $arr2['product_sku']; // Product from $array2
echo number_format($arr2['full_price'],2); // Price from $array2
}
}
)
我需要帮助来确定我们的目标或为我指明正确的方向如何实现目标
【问题讨论】:
-
它显示某些产品的 0.00 full_price 值 那是因为您甚至没有尝试修改
$array2中的价格 回声的东西不会改变任何东西 -
我也没有看到任何对任何东西进行排序的尝试。 我们非常愿意帮助您修复您的代码,但我们不会为您编写代码
-
@RiggsFolly 我之前在
$array2上使用过sort($array),其中full_price是第一个元素,因此它会自动将价格从低到高排序,并且如果我能够的话,我计划使用相同的方法解决上述问题,我认为比较两个数组中的full_price足以让我得到想要的结果,如果我知道如何修改$array2的价格,我不会在这里问问题。不要为我写代码,但至少有礼貌地指出正确的方向 -
请随时寻求有关编码问题的帮助,但我们的想法是您尝试编写代码,我们会尝试帮助您修复它。您提供了一个规范和很少的您自己的代码,以表明您已尝试编写代码以满足该要求。所以这看起来像是一个为我做的问题。 meta.stackoverflow.com/questions/260648/…