如何在键和值中拆分数组键和值

  • 本文关键字:键和值 拆分 数组 php
  • 更新时间 :
  • 英文 :


我正在尝试获取一个可用的数组。这就是我从.csv文件中获取以下数组所做的。

$csv = array_map('str_getcsv', file($file));
array_walk($csv, function(&$a) use ($csv) {
    $a = array_combine($csv[0], $a);
});
array_shift($csv);

现在我有一个包含这些键和值的数组:

[0] => Array
    (
        [Label;Account;Registered;Licensed;User;UserLicense] => Test;Test;No;No;test;no;
    )

我想得到一个这样的数组:

[0] => Array
    (
        [Label] => Test
        [Account] => Test
        [Registered] => No
        [Licensed] => No
        [User] => test
        [UsreLicense] => no
    )

谁能帮我?谢谢。

class arrCsv {
        private $arr;
        private function getValFromArray($item, $key) {
            $arrKeys = explode(';', $key);
            $arrVal = explode(';', $item);
            array_pop($arrVal); // remove last empty item
            $this->arr[] = array_combine($arrKeys, $arrVal);
        }
        function setNewArr($arItems) {
            array_walk_recursive($arItems, array($this, 'getValFromArray'));
        }
        function getNewArr() {
            return $this->arr;
        }
    }
    $r = new arrCsv;
    $r->setNewArr($csvArray);
    $vals = $r->getNewArr();

我找到的答案:

$usersCsv = array();
if (($handle = fopen($file, "r")) !== FALSE) {
   while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
  $usersCsv[] = $data;
  array_walk($usersCsv, function(&$a) use ($usersCsv) {
       $a = array_combine($usersCsv[0], $a);
      });
    }
 fclose($handle);
 array_splice($usersCsv, 0, 1);
}

无论如何,感谢您的帮助!

最新更新