/** * in_array_multi function. * * @param mixed $needle array value * @param array $haystack * @return array - found results */ function in_array_multi($needle, $haystack) { foreach ((array) $haystack as $key => $stack) { if (is_array($stack) && in_array_multi($needle, $stack)) { return true; } if ($stack === $needle) { return true; } } return false; }
function in_array_multi($needle, $haystack) { if (!is_array($haystack)) { return $needle == $haystack; } foreach ($haystack as $value) { if (in_array_multi($needle, $value)) { return true; } } return false; }
<?php include '../resources/connect.php'; $allItems = []; $selectedItems = []; $item_id = $_GET["itemID"]; $sql_similar_orders = "SELECT order_id FROM order_items WHERE item_id = " . $item_id; $similarOrders = $conn->query($sql_similar_orders); while ($orderRow = $similarOrders->fetch_assoc()) { $sql_get_suggestions = "SELECT item_id FROM order_items WHERE order_id = " . $orderRow["order_id"]; $items = $conn->query($sql_get_suggestions); while ($itemRow = $items->fetch_assoc()) { if (in_array_multi($allItems, $itemRow["item_id"])) { $index = array_search_multi($allItems, $itemRow["item_id"]); $allItems[$index][1] = $allItems[$index][1] + 1; } else { if ($itemRow["item_id"] != $item_id) { $tuple = [$itemRow["item_id"], 1]; array_push($allItems, $tuple); } } } } usort($allItems, function ($a, $b) { return $a[1] - $b[1]; }); $sql_item_info = "SELECT category, name, item_id FROM products WHERE item_id = "; for ($i = 0; $i < sizeof($allItems) && $i < 3; $i++) { if ($i != 0) { $sql_item_info .= "OR item_id = "; }