CSV를 PHP로 조작하고 있는데, 배열을 조작하기 어려운 키로 배열의 값을 반환한다는 점을 제외하고는 stackoverflow에서 훌륭한 작업을 수행하는 함수를 발견했습니다 .배열의 키 값을 int로 제공
array(6) {
[0]=>
array(2) {
["Aliens: Colonial Marines: Limited Edition (Xbox 360)"]=>
string(66) "Aliens: Colonial Marines: Limited Edition (Xbox 360) - EU Version"
["€ 14.34"]=>
string(8) "€ 7.17"
}
[1]=>
array(2) {
["Aliens: Colonial Marines: Limited Edition (Xbox 360)"]=>
string(46) "Arcania: Gothic 4 - Special Edition (Xbox 360)"
["€ 14.34"]=>
string(8) "€ 9.56"
}
[2]=>
array(2) {
["Aliens: Colonial Marines: Limited Edition (Xbox 360)"]=>
string(29) "Assassin's Creed 3 (Xbox 360)"
["€ 14.34"]=>
string(9) "€ 15.54"
}
[MORE]
}
이 방법으로 배열을 변경하는 방법은 없나요 ?? :
array(6) {
[0]=>
array(2) {
[0]=>
string(66) "Aliens: Colonial Marines: Limited Edition (Xbox 360) - EU Version"
[1]=>
string(8) "€ 7.17"
}
[1]=>
array(2) {
[0]=>
string(46) "Arcania: Gothic 4 - Special Edition (Xbox 360)"
[1]=>
string(8) "€ 9.56"
[MORE]
}
는 당신에게 감사
편집 :
function parse_csv_file($csvfile) {
$csv = Array();
$rowcount = 0;
if (($handle = fopen($csvfile, "r")) !== FALSE) {
$max_line_length = defined('MAX_LINE_LENGTH') ? MAX_LINE_LENGTH : 10000;
$header = fgetcsv($handle, $max_line_length);
$header_colcount = count($header);
while (($row = fgetcsv($handle, $max_line_length)) !== FALSE) {
$row_colcount = count($row);
if ($row_colcount == $header_colcount) {
$entry = array_combine($header, $row);
$csv[] = $entry;
}
else {
error_log("csvreader: Invalid number of columns at line " . ($rowcount + 2) . " (row " . ($rowcount + 1) . "). Expected=$header_colcount Got=$row_colcount");
return null;
}
$rowcount++;
}
//echo "Totally $rowcount rows found\n";
fclose($handle);
}
else {
error_log("csvreader: Could not read CSV \"$csvfile\"");
return null;
}
return $csv;
}
을 원하는입니까? 게시하십시오 ... – Mark
'foreach ($ myArray as & $ value) {$ value = array_values ($ value); } unset ($ value);' –
@MarkBaker는 원래 함수를 수정하는 것이 더 나은 옵션 인 것처럼 보이기 때문에 실행 시간이 더 적을 것입니다. 그러나 당신의 솔루션은 또한 실행 가능합니다. – Mark