[英]PHP Create new array from multidimensional array and single array looping
I have a multidimensional array and an array, I want to create new array with data from these array using keys from each array as mark point. 我有一个多维数组和一个数组,我想使用每个数组中的键作为标记点,使用这些数组中的数据创建新数组。
Single array: 单阵列:
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"
}
Multidimensional array: 多维数组:
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)
}
}
And I want to have new array like this (I'm using the keys to indicate which data will I push or add to the new array.: 而且我想要这样的新数组(我正在使用键来指示要推送或添加到新数组的数据。:
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)
}
}
Is it possible to have new array like that using looping? 是否可以使用循环来创建类似的新数组? Thank you so much!
非常感谢!
This code: 这段代码:
$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.