I have a little problem with arrays. I have a few arrays like the one below as a result of a query. like 25 pcs of array
[2] => Array
(
[id] => 15
[oem_reference] => 5972277
[description] => TIMING TENSIONER
[brand] => LANCIA
[old_reference] => 25102277
[factory_reference] => TM102277.jpg
[prod_date] => 2014/06
[model] => DEDRA-DELTAII-Y10-Y-YPSILON
[engine] => 1,6 i.e-1,6-1,4i.e-1,0-1,1 i.e-1,1-1,3i.e-1,2
[year] => 85-11
[other_cross_ref] =>
[ref1] => GT 80290
[ref2] => T41121
[ref3] => ATB2240
[ref4] => VKM 12200
[ref5] => 531 0005 10
[ref5_x] => 531000510
[ref6] => 55801
[complete] =>
[note] =>
[type] => TIMING
[out_d1] => 57.00
[out_d2] => 0.00
[h1] => 24.00
[h2] => 0.00
[in_d1] => 30.00
[in_d2] => 0.00
)
[3] => Array
(
[id] => 34
[oem_reference] => 5972277
[description] => TIMING TENSIONER
[brand] => FIAT
[old_reference] => 25102277.1
[factory_reference] => TM102277.1.jpg
[prod_date] => 2014/06
[model] => CINQUECENTO-DOBLO-ELBA-FIORINO-PALIO-PANDA-PUNTO-SCUDO-SEICENTO-ALBEA-STRADA-TEMPRA-TIPO-UNO-DUCATO
[engine] => 1,2-1,4-1,6-1,1-1,3-1,4-1,0-1,1 4*4-1,2 4*4-1,4 GT-1,4 i.e-1,6 i.e-2,5D-2,5 4*4
[year] => 82->
[other_cross_ref] =>
[ref1] => GT 80290
[ref2] => T41121
[ref3] => ATB2240
[ref4] => VKM 12200
[ref5] => 531 0005 10
[ref5_x] => 531000510
[ref6] => 55801
[complete] =>
[note] =>
[type] => TIMING
[out_d1] => 57.00
[out_d2] => 0.00
[h1] => 24.00
[h2] => 0.00
[in_d1] => 30.00
[in_d2] => 0.00
)
[4] => Array
(
[id] => 36
[oem_reference] => 5972277
[description] => TIMING TENSIONER
[brand] => INNOCENTI
[old_reference] => 25102277.1
[factory_reference] => TM102277.1.jpg
[prod_date] => 2014/06
[model] => ELBA-MILLE
[engine] => 1.0-1.3-1.4i.e-1.6i.e
[year] => 92->
[other_cross_ref] => INA F-36261
[ref1] => GT 80290
[ref2] => T41121
[ref3] => ATB2240
[ref4] => VKM 12200
[ref5] => 531 0005 10
[ref5_x] => 531000510
[ref6] => 55801
[complete] =>
[note] =>
[type] => TIMING
[out_d1] => 57.00
[out_d2] => 0.00
[h1] => 24.00
[h2] => 0.00
[in_d1] => 30.00
[in_d2] => 0.00
)
[5] => Array
(
[id] => 38
[oem_reference] => 5972277
[description] => TIMING TENSIONER
[brand] => LANCIA
[old_reference] => 25102277.1
[factory_reference] => TM102277.1.jpg
[prod_date] => 2014/06
[model] => DEDRA-DELTAII-Y10-Y-YPSILON
[engine] => 1,6 i.e-1,6-1,4i.e-1,0-1,1 i.e-1,1-1,3i.e-1,2
[year] => 85-11
[other_cross_ref] =>
[ref1] => GT 80290
[ref2] => T41121
[ref3] => ATB2240
[ref4] => VKM 12200
[ref5] => 531 0005 10
[ref5_x] => 531000510
[ref6] => 55801
[complete] =>
[note] =>
[type] => TIMING
[out_d1] => 57.00
[out_d2] => 0.00
[h1] => 24.00
[h2] => 0.00
[in_d1] => 30.00
[in_d2] => 0.00
)
I want to merge this arrays by taking factory_reference as a key
I need outputs like this arrays.
[0] => Array
[id] => Array
(
[0] => 8
)
[oem_reference] => Array
(
[0] => 561 9217
)
[description] => Array
(
[0] => TIMING TENSIONER
)
[brand] => Array
(
[0] => FIAT
)
[old_reference] => Array
(
[0] => 25102277
)
[factory_reference] => Array
(
[0] => TM102277.jpg
)
[prod_date] => Array
(
[0] => 2014/06
)
[model] => Array
(
[0] => CINQUECENTO-DOBLO-ELBA-FIORINO-PALIO-PANDA-PUNTO-SCUDO-SEICENTO-ALBEA-STRADA-TEMPRA-TIPO-UNO-DUCATO
)
[engine] => Array
(
[0] => 1,2-1,4-1,6-1,1-1,3-1,4-1,0-1,1 4*4-1,2 4*4-1,4 GT-1,4 i.e-1,6 i.e-2,5D-2,5 4*4
)
[year] => Array
(
[0] => 82->
)
[other_cross_ref] => Array
(
[0] =>
)
[ref1] => Array
(
[0] => GT 80290
)
[ref2] => Array
(
[0] => T41121
)
[ref3] => Array
(
[0] => ATB2240
)
[ref4] => Array
(
[0] => VKM 12200
)
[ref5] => Array
(
[0] => 531 0005 10
)
[ref5_x] => Array
(
[0] => 531000510
)
[ref6] => Array
(
[0] => 55801
)
[complete] => Array
(
[0] =>
)
[note] => Array
(
[0] =>
)
[type] => Array
(
[0] => TIMING
)
[out_d1] => Array
(
[0] => 57.00
)
[out_d2] => Array
(
[0] => 0.00
)
[h1] => Array
(
[0] => 24.00
)
[h2] => Array
(
[0] => 0.00
)
[in_d1] => Array
(
[0] => 30.00
)
[in_d2] => Array
(
[0] => 0.00
)
)
[1] => Array [id] => Array ( ( [0] => 8 [1] => 31 [2] => 1553 [3] => 1576
)
[oem_reference] => Array
(
[0] => 561 9217
[1] => 561 9217
[2] => 561 9217
[3] => 561 9217
)
[description] => Array
(
[0] => TIMING TENSIONER
[1] => TIMING TENSIONER
[2] => TIMING TENSIONER
[3] => TIMING TENSIONER
)
[brand] => Array
(
[0] => FIAT
[1] => FIAT
[2] => FIAT
[3] => FIAT
)
[old_reference] => Array
(
[0] => 25102277
[1] => 25102277.1
[2] => 25102277
[3] => 25102277.1
)
[factory_reference] => Array
(
[0] => TM102277.1.jpg
[1] => TM102277.1.jpg
[2] => TM102277.1.jpg
[3] => TM102277.1.jpg
)
[prod_date] => Array
(
[0] => 2014/06
[1] => 2014/06
[2] => 2014/06
[3] => 2014/06
)
[model] => Array
(
[0] => CINQUECENTO-DOBLO-ELBA-FIORINO-PALIO-PANDA-PUNTO-SCUDO-SEICENTO-ALBEA-STRADA-TEMPRA-TIPO-UNO-DUCATO
[1] => CINQUECENTO-DOBLO-ELBA-FIORINO-PALIO-PANDA-PUNTO-SCUDO-SEICENTO-ALBEA-STRADA-TEMPRA-TIPO-UNO-DUCATO
[2] => CINQUECENTO-DOBLO-ELBA-FIORINO-PALIO-PANDA-PUNTO-SCUDO-SEICENTO-ALBEA-STRADA-TEMPRA-TIPO-UNO-DUCATO
[3] => CINQUECENTO-DOBLO-ELBA-FIORINO-PALIO-PANDA-PUNTO-SCUDO-SEICENTO-ALBEA-STRADA-TEMPRA-TIPO-UNO-DUCATO
)
[engine] => Array
(
[0] => 1,2-1,4-1,6-1,1-1,3-1,4-1,0-1,1 4*4-1,2 4*4-1,4 GT-1,4 i.e-1,6 i.e-2,5D-2,5 4*4
[1] => 1,2-1,4-1,6-1,1-1,3-1,4-1,0-1,1 4*4-1,2 4*4-1,4 GT-1,4 i.e-1,6 i.e-2,5D-2,5 4*4
[2] => 1,2-1,4-1,6-1,1-1,3-1,4-1,0-1,1 4*4-1,2 4*4-1,4 GT-1,4 i.e-1,6 i.e-2,5D-2,5 4*4
[3] => 1,2-1,4-1,6-1,1-1,3-1,4-1,0-1,1 4*4-1,2 4*4-1,4 GT-1,4 i.e-1,6 i.e-2,5D-2,5 4*4
)
[year] => Array
(
[0] => 82->
[1] => 82->
[2] => 82->
[3] => 82->
)
[other_cross_ref] => Array
(
[0] =>
[1] =>
[2] =>
[3] =>
)
[ref1] => Array
(
[0] => GT 80290
[1] => GT 80290
[2] => GT 80290
[3] => GT 80290
)
[ref2] => Array
(
[0] => T41121
[1] => T41121
[2] => T41121
[3] => T41121
)
[ref3] => Array
(
[0] => ATB2240
[1] => ATB2240
[2] => ATB2240
[3] => ATB2240
)
[ref4] => Array
(
[0] => VKM 12200
[1] => VKM 12200
[2] => VKM 12200
[3] => VKM 12200
)
[ref5] => Array
(
[0] => 531 0005 10
[1] => 531 0005 10
[2] => 531 0005 10
[3] => 531 0005 10
)
[ref5_x] => Array
(
[0] => 531000510
[1] => 531000510
[2] => 531000510
[3] => 531000510
)
[ref6] => Array
(
[0] => 55801
[1] => 55801
[2] => 55801
[3] => 55801
)
[complete] => Array
(
[0] =>
[1] =>
[2] =>
[3] =>
)
[note] => Array
(
[0] =>
[1] =>
[2] =>
[3] =>
)
[type] => Array
(
[0] => TIMING
[1] => TIMING
[2] => TIMING
[3] => TIMING
)
[out_d1] => Array
(
[0] => 57.00
[1] => 57.00
[2] => 57.00
[3] => 57.00
)
[out_d2] => Array
(
[0] => 0.00
[1] => 0.00
[2] => 0.00
[3] => 0.00
)
[h1] => Array
(
[0] => 24.00
[1] => 24.00
[2] => 24.00
[3] => 24.00
)
[h2] => Array
(
[0] => 0.00
[1] => 0.00
[2] => 0.00
[3] => 0.00
)
[in_d1] => Array
(
[0] => 30.00
[1] => 30.00
[2] => 30.00
[3] => 30.00
)
[in_d2] => Array
(
[0] => 0.00
[1] => 0.00
[2] => 0.00
[3] => 0.00
)
)
I want to merge arrays with the same factory_reference . I wonder if there are masters who can help me with this?
You should start with something like this:
<?php
$data = [your_input_array];
$merged = array();
foreach($data as $element) {
foreach($element as $field=>$value) {
$merged[$element['factory_reference']][$field][]=$value;
}
}
of course you should add code to check for empty fields/values. This will create assoc array with factory_reference as a key and merged by factory_reference.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.