Laravel - 检查数组中的comepare值并检查价格是否更高

时间:2018-02-24 17:06:52

标签: php arrays laravel

我的刀片中有一些输入字段如下所示:

<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的答案是更快的解决方案。谢谢你们两个人!

2 个答案:

答案 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()