如何使用PHP将数组分解为另一个数组而不是子数组?
问题描述:
Is there any possibility to explode values of an array to create direct a new array with these values. I'm able to do this only with a intemidiate step.
I have following array:
Array (
[0] => OtherMachines, Polymers
[1] => Engines/Pumps/Turbines, Measurement
[2] => Materials/Metallurgy
[3] => Materials/Metallurgy, ThermProcesses
)
Then I explode its values:
foreach ($array00 as $v) {
$array01 = explode(", ", $v);
}
and receive following array:
Array
(
[0] => Array
(
[0] => OtherMachines
[1] => Polymers
)
[1] => Array
(
[0] => Engines/Pumps/Turbines
[1] => Measurement
)
[2] => Array
(
[0] => Materials/Metallurgy
)
[3] => Array
(
[0] => Materials/Metallurgy
[1] => ThermProcesses
)
)
Than I have to flatten the array to get the one I wish:
// Flatten the array.
$array02 = call_user_func_array('array_merge', $array01);
Final result:
Array (
[0] => OtherMachines
[1] => Polymers
[2] => Engines/Pumps/Turbines
[3] => Measurement
[4] => Materials/Metallurgy
[5] => Materials/Metallurgy
[6] => ThermProcesses
)
Is there any way to do this direct?
Many thanks in advance.
是否有可能爆炸数组的值来创建具有这些值的新数组。 我只能通过一个intemidiate步骤来做到这一点。 p>
我有以下数组: p>
数组(
[0] => OtherMachines,Polymers
[1] =>发动机/泵/涡轮机,Measurement
[2] =>材料/冶金
[3] =>材料/冶金,ThermProcesses
)
code> pre>
然后我将其值分解: p>
foreach($ array00 as $ v){
$ array01 = explode (“,”,$ v);
}
code> pre>
并接收以下数组: p>
Array \ n(
[0] =>数组
(
[0] => OtherMachines
[1] =>聚合物
)
[1] =>数组
(\ n [0] =>发动机/泵/涡轮机
[1] =>测量
)
[2] =>数组
(
[0] =>材料/冶金\ n)
[3] =>数组
(
[0] =>材料/冶金
[1] => ThermProcesses
)
)
code> pre>
我必须将数组展平以获得我想要的数组: p>
//展平数组。
$ array02 = call_us er_func_array('array_merge',$ array01);
code> pre>
最终结果: p>
Array(
[0 ] => OtherMachines
[1] => 聚合物
[2] => 发动机/泵/涡轮机
[3] => 测量
[4] => 材料/冶金
[5] => 材料/冶金
[6] => ThermProcesses
)
code> pre>
有没有办法直接这样做? p>
非常感谢提前。 p>
div>
答
Yes, just implode it and then explode.
$result = explode(', ', implode(', ', $array));
答
$arr = array (
'OtherMachines, Polymers',
'Engines/Pumps/Turbines, Measurement',
'Materials/Metallurgy',
'Materials/Metallurgy, ThermProcesses'
);
print_r(array_map('trim', explode(',', implode(',', $arr))));
Array
(
[0] => OtherMachines
[1] => Polymers
[2] => Engines/Pumps/Turbines
[3] => Measurement
[4] => Materials/Metallurgy
[5] => Materials/Metallurgy
[6] => ThermProcesses
)
答
Or simply:
$arr = array (
'OtherMachines, Polymers',
'Engines/Pumps/Turbines, Measurement',
'Materials/Metallurgy',
'Materials/Metallurgy, ThermProcesses'
);
print_r(explode(', ', implode(', ', $arr)));