如何遍历数组并将每个元素拆分


How can I walk an array and split each element apart?

在PHP中给定这样的数组:

array('aaa_BC98E90D8ADA0',
      'aab_KD9098DF90F',
      ...
      'd5d_KDO90290393',
      'nnn_OPDOE82993KD',
       'kbh_Doodie0DDK',
       ...
     );

如何在"_"周围拆分每个条目,并使用右手标记将每个条目分配给一个唯一的变量?

$aaa = 'BC98E90D8ADA0';
$aab = 'KD9098DF90F';
...
$d5d = 'KDO90290393';
$nnn = 'OPDOE82993KD';
$kbh = 'Doodie0DDK';
...
$array_to_split = array(
    'aaa_BC98E90D8ADA0',
    'aab_KD9098DF90F',
    'd5d_KDO90290393',
    'nnn_OPDOE82993KD',
    'kbh_Doodie0DDK',
 );
foreach($array_to_split as $val) {
    $var = explode($val);
    $$var[0] = $var[1];
}

这应该动态设置var名称及其键,但我更喜欢这样做。

$new_array = array();
foreach($array_to_split as $val) {
    $new_array[] = explode('_', $val);
}
echo $new_array['aaa']; // output, BC98E90D8ADA0

下面是一个例子:

<?php
$array_to_split = array(
    'aaa_BC98E90D8ADA0',
    'aab_KD9098DF90F',
    'd5d_KDO90290393',
    'nnn_OPDOE82993KD',
    'kbh_Doodie0DDK',
);
foreach ($array_to_split as $value) {
    $temp = explode('_', $value);
    if(count($temp)==2){
        list($key,$val) = $temp;
        $$key = $val;
    }
}
echo $aaa;  //BC98E90D8ADA0
?>