我的刀片中有一些输入字段如下所示:
<input type="text" name="product[0][name]">
<input type="text" name="product[0][price]">
<input type="text" name="product[1][name]">
<input type="text" name="product[1][price]">
如果我提交表单,如果我dd(输入:: get(&#34;产品)),我会回复:
MY PRODUCT ARRAY
array:2 [▼
0 => array:2 [▼
"name" => "unicorn"
"price" => 5000
]
1 => array:2 [▼
"name" => "house"
"price" => 10000
]
]
现在我有另一个数组,如下所示:
API PRODUCT ARRAY
array:80 [▼
0 => array:18 [▼
"name" => "john doe for sale"
"price" => 120
...
]
1 => array:18 [▼
"name" => "house"
"price" => 12000
..
]
3 => array:18 [▼
"name" => "unicorn"
"price" => 5100
...
]
4 => array:18 [▼
"name" => "blabla"
"price" => 60000
...
]
现在我的问题
我想检查一下&#34;我的产品数组&#34;是具有相同名称的产品,例如&#34; API产品阵列&#34;
如果情况确实如此,则应检查“产品数组”中的某个产品的价格是否为&#34;高于&#34;我的产品阵列&#34;。
如果发生这种情况,应将此产品添加到UserNotificationProducts数组中。
我制作的代码看起来像这样,但对我来说根本不起作用。 在这里,我需要一些帮助。
foreach ($apiproducts as $key => $product)
{
if (in_array($product["name"], $myproducts["name"]))
{
if($product["price"] > (the current product of "myproducts")
array_push($productnotification, $product["name"]);
}
}
&#34;我的产品阵列&#34;最多有三种产品。 API Products阵列最多100个。
谢谢!
我尝试了两个答案并计算了两种解决方案的时间成本。
Istiaque Ahmed的答案需要0.15902519226074 ms
Hamelraj的答案(我在你发布答案之前完全按照你所做的做法:D)需要0.031232833862305 ms
所以hamelraj的答案是更快的解决方案。谢谢你们两个人!
答案 0 :(得分:1)
你写了if (in_array($product["name"], $myproducts["name"]))
。但是$myproducts
是一个数组数组。所以你没有得到任何名字。以下代码可能有所帮助:
foreach ($apiproducts as $key => $product)
{
$product_name=$product["name"];
for($i=0; $i<count($myproducts); $i++){
if (strcasecmp($product_name,$myproducts[$i]['name']==0) ){
if($product["price"] > (the current product of "myproducts")
array_push($productnotification, $product["name"]);
}
}// end of for loop
}
答案 1 :(得分:1)
{ model: processing: { "errorMsg": "save Failed", "msgType": "info" } };
this.processing= ko.observable()