簡體   English   中英

PHP從多維數組和單數組循環創建新數組

[英]PHP Create new array from multidimensional array and single array looping

我有一個多維數組和一個數組,我想使用每個數組中的鍵作為標記點,使用這些數組中的數據創建新數組。

單陣列:

array(12) {
  [11]=>
  string(18) "Blacklist Customer"
  [2]=>
  string(11) "Change Mind"
  [8]=>
  string(5) "Fraud"
  [1]=>
  string(13) "Late Delivery"
  [0]=>
  string(3) "N/A"
  [7]=>
  string(12) "No Statement"
  [5]=>
  string(8) "No Stock"
  [4]=>
  string(15) "Order Suspected"
  [10]=>
  string(20) "SOP Cancelation Rule"
  [9]=>
  string(15) "Sourcing Issues"
  [3]=>
  string(13) "Suspect Fraud"
  [6]=>
  string(20) "Wrong Payment Method"
}

多維數組:

array(6) {
  [1]=> //Late delivery
  array(2) {
    [0]=> // this is sales key. It means sales with ID 0 have 4 late delivery
    float(4)
    [2]=> // this is sales key. It means sales with ID 2 have 3 late delivery
    float(3)
  }
  [0]=> //NA
  array(2) {
    [0]=>
    float(2)
    [2]=>
    float(10)
  }
  [2]=> //Change Mind
  array(2) {
    [0]=>
    float(1)
    [2]=>
    float(1)
  }
  [5]=> //No stock
  array(1) {
    [2]=>
    float(1)
  }
  [4]=> //Order Suspected
  array(1) {
    [2]=>
    float(1)
  }
  [6]=> //Wrong payment method
  array(1) {
    [10]=>
    float(1)
  }
}

而且我想要這樣的新數組(我正在使用鍵來指示要推送或添加到新數組的數據。:

array(12) {
  [Blacklist Customer]=>
  array(0) {
  }
  [Change Mind]=>
  array(2) {
    [0]=>
    float(1)
    [2]=>
    float(1)
  }
  [Fraud]=>
  array(0) {
  }
  [Late Delivery]=>
  array(2) {
    [0]=>
    float(4)
    [2]=>
    float(3)
  }
  [N/A]=>
  array(2) {
    [0]=>
    float(2)
    [2]=>
    float(10)
  }
  [No Statement]=>
  array(0) {
  }
  [No Stock]=>
  array(1) {
    [2]=>
    float(1)
  }
  [Order Suspected]=>
  array(1) {
    [2]=>
    float(1)
  }
  [SOP Cancelation Rule]=>
  array(0) {
  }
  [Sourcing Issues]=>
  array(0) {
  }
  [Suspect Fraud]=>
  array(0) {
  }
  [Wrong Payment Method]=>
  array(1) {
    [10]=>
    float(1)
  }
}

是否可以使用循環來創建類似的新數組? 非常感謝!

這段代碼:

$arr; // Array
$mult; // Multi dimensional array
$out; // created array

foreach ( $arr as $id=>$name ) {
    if ( array_key_exists($mult, $id) ) 
       $out[$name] = $mult[$id];
    else
       $out[$name] = array();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM