数组值的第一个字到数组键

时间:2014-02-17 22:25:28

标签: php arrays

我有一个看起来像这样的数组:

Array
(
    [20] => ADEP EGKK

    [21] => ADES EGLL

    [22] => AOARCID ABC

    [23] => AOOPR ABC

    [24] => ARCID ABC123

    [25] => ARCTYP MD11

正如你所看到的那样,第一个数组键是20,因为前19个我使用preg_match取消设置:

if (isset($_POST['plan']))
  $fplparts = explode("-", $fpl);
      $pattern = "/FAC|TITLE|BEGIN|END|PT|PTID|ATSRT|ICAOCONTENT/i";

  foreach($fplparts as $key => $value) {
    if (preg_match($pattern, $value)){
      unset($fplparts[$key]);
    }
  }
  print_r($fplparts);

现在我希望我的阵列看起来像这样:

Array
(
    [ADEP] => EGKK

    [ADES] => EGLL

    [AOARCID] => ABC

    [AOOPR] => ABC

    [ARCID] => ABC123

    [ARCTYP] => MD11

所以基本上,我想移动每个值的第一个单词并使其成为关键。

最好的方法是什么?

先谢谢。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

$newArray = array();

foreach ($oldArray as $item)
{
   list($key, $value) = explode(' ', $item, 2);
   $newArray[$key] = $value;
}

但是有一些限制,例如你必须确保第一个字符串(你想要作为键)将是唯一的,否则你将重写你的数据。 2中的第三个参数(explode())用于确保导致ADEP EGKK EGKK EGKK

[ADEP] => EGKK EGKK EGKK