如果在多阵列检查中键,则添加到新数组

时间:2017-04-27 12:35:54

标签: php arrays multidimensional-array

我有多维数组WHERE SUBSTR(DateTime, 12, 2) BETWEEN '02' and '05' ,我需要搜索它然后创建新的数组。

这个数组是在我尝试构建的电子商店的检查结束时生成的,因此数组可以是随机长度的。我需要创建为每个新$items创建新数组,这样我就可以将数据发送给每个新数组。

我已经有了下订单的代码,但现在它只需要获取所有数据。所以在这个特定的例子中,我期待3个多维数组,我可以通过我的supplier_id代码运行。

我知道有很多线程在谈论多维数组但没有一个我能够理解它足以应用于我的情况。非常感谢您的帮助。

以下是create_order的样子

$items

1 个答案:

答案 0 :(得分:0)

因此,经过几个小时的挖掘,我很惊讶它可以轻松完成

  // searching for all unique supplier_id
  $uniqueID = array();
  foreach ($items as $item) {
    if (!in_array($item['product']['supplier_id'], $uniqueID)) {
    array_push($uniqueID, $item['id'] = $item['product']['supplier_id']);
    }
  }
  // visual check of all unique *supplier_id*
  dump($uniqueID);

  // creation of array where I'm going to insert all necessary data
  foreach ($uniqueID as $array) {
    $defined_array = [];

    // visual check for debugging purposes
    dump("start");

    // creating multiarray for every unique *supplier_id* and inserting data
    foreach ($items as $item) {
      if($item['product']['supplier_id'] == $array) {
        $defined_array[] = $item;            
      }
    }

    // final check of all arrays + debug check for end -- 
    // at the end this block is replaced by *create_order* code
        foreach ($defined_array as $array) {
            dump($array);
        }
        dump("end");      
    }

最后,我希望它至少对某人有帮助。