我正在尝试获得一个可用的数组。 这就是我从.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
)
任何人都可以帮助我吗? 感谢。
答案 0 :(得分:0)
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();
答案 1 :(得分:0)
我找到了答案:
$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);
}
感谢您的帮助!