уникальный многомерный массив на основе определенных нескольких ключей

  1. Проверьте версию установленного браузера Chrome.
  2. Загрузите совместимую версию ChromeDriver с https://sites.google.com/a/chromium.org/chromedriver/
  3. Установите местоположение совместимого ChromeDriver на:
    System.setProperty("webdriver.chrome.driver", "C:\\Users\\your_path\\chromedriver.exe");
    
  4. Запустите тест еще раз.
  5. Должно быть хорошо Теперь.

1
задан Akash lal 29 March 2019 в 13:55
поделиться

1 ответ

Вы можете использовать простой цикл foreach для итерации по вашему массиву, а затем использовать ключ вспомогательного массива store_id, чтобы получить ключ окончательного массива. вставьте в этот окончательный массив значение текущего значения.

Кроме того, чтобы удалить дубликаты item_type_id, я написал бы функцию, которая проверяет, существует ли этот идентификатор в результате.

В примере:

$storeID = [1000,1001];

$array = [
    0 => [
        "partner_id" => "10017",
        "store_id" => "1000",
        "item_type_id" => "2",
        "value" => "58",
        "category" => "1"
    ],
    1 => [
        "partner_id" => "10017",
        "store_id" => "1000",
        "item_type_id" => "1",
        "value" => "63",
        "category" => "1",
    ],
    2 => [
        "partner_id" => "0",
        "store_id" => "1000",
        "item_type_id" => "3",
        "value" => "29",
        "category" => "1"
    ],
    3 => [
        "partner_id" => "0",
        "store_id" => "1000",
        "item_type_id" => "2",
        "value" => "58",
        "category" => "1",
    ],
    4 => [
        "partner_id" => "0",
        "store_id" => "1001",
        "item_type_id" => "1",
        "value" => "65",
        "category" => "1",
    ],
    5 => [
        "partner_id" => "0",
        "store_id" => "1001",
        "item_type_id" => "2",
        "value" => "58",
        "category" => "1",
    ],
    6 => [
        "partner_id" => "0",
        "store_id" => "1001",
        "item_type_id" => "3",
        "value" => "29",
        "category" => "1"
    ],
    7 => [
        "partner_id" => "0",
        "store_id" => "1000",
        "item_type_id" => "1",
        "value" => "65",
        "category" => "1"
    ]
];

function ItemIdExists($arr, $itemId)
{
    foreach ($arr as $subValue)
    {
        if ($subValue["item_type_id"] == $itemId)
        {
            return true;
        }
    }
    return false;
}

$result = array();
foreach ($array as $value)
{
    $key = $value["store_id"];
    if (in_array($key, $storeID))
    {
        $ItemIdFound = isset($result[$key]) && ItemIdExists($result[$key], $value["item_type_id"]);

        if (!$ItemIdFound)
            $result[$key][] = $value;
    }
}
var_dump($result);

Выход

array(2) {
  [1000]=>
  array(3) {
    [0]=>
    array(5) {
      ["partner_id"]=>
      string(5) "10017"
      ["store_id"]=>
      string(4) "1000"
      ["item_type_id"]=>
      string(1) "2"
      ["value"]=>
      string(2) "58"
      ["category"]=>
      string(1) "1"
    }
    [1]=>
    array(5) {
      ["partner_id"]=>
      string(5) "10017"
      ["store_id"]=>
      string(4) "1000"
      ["item_type_id"]=>
      string(1) "1"
      ["value"]=>
      string(2) "63"
      ["category"]=>
      string(1) "1"
    }
    [2]=>
    array(5) {
      ["partner_id"]=>
      string(1) "0"
      ["store_id"]=>
      string(4) "1000"
      ["item_type_id"]=>
      string(1) "3"
      ["value"]=>
      string(2) "29"
      ["category"]=>
      string(1) "1"
    }
  }
  [1001]=>
  array(3) {
    [0]=>
    array(5) {
      ["partner_id"]=>
      string(1) "0"
      ["store_id"]=>
      string(4) "1001"
      ["item_type_id"]=>
      string(1) "1"
      ["value"]=>
      string(2) "65"
      ["category"]=>
      string(1) "1"
    }
    [1]=>
    array(5) {
      ["partner_id"]=>
      string(1) "0"
      ["store_id"]=>
      string(4) "1001"
      ["item_type_id"]=>
      string(1) "2"
      ["value"]=>
      string(2) "58"
      ["category"]=>
      string(1) "1"
    }
    [2]=>
    array(5) {
      ["partner_id"]=>
      string(1) "0"
      ["store_id"]=>
      string(4) "1001"
      ["item_type_id"]=>
      string(1) "3"
      ["value"]=>
      string(2) "29"
      ["category"]=>
      string(1) "1"
    }
  }
}
0
ответ дан Cid 29 March 2019 в 13:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: