cuốn sách gpt4 ai đã làm

php chỉ chọn cột đầu tiên, giữa và cuối cùng từ tệp csv

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 00:33:37 27 4
mua khóa gpt4 Nike

Tôi có một tệp csv đã tải lên và tôi cần xác định có bao nhiêu mục trong tệp csv và định dạng các cột đầu tiên, giữa và cuối cùng thành các mảng kết hợp với các cặp $header=>$value. Tôi có mã định dạng toàn bộ csv thành một mảng

hàm csv_to_array($filename='', $delimiter=',') {
if(!file_exists($filename) || !is_readable($filename)){
trả về SAI;
}

tiêu đề $ = NULL;
$data = mảng();
if (($handle = fopen($filename, 'r')) !== FALSE) {
while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) {
if(!$header) {
$tiêu đề = $hàng;
}khác{
$data[] = array_combine($header, $row);
}
}

fclose($xử lý);
}

trả về dữ liệu $;
}

Tuy nhiên, tôi vẫn bối rối không biết làm cách nào để thực hiện việc này. Bất kỳ trợ giúp sẽ được đánh giá rất cao. Tôi nghĩ một điều có thể xảy ra là sử dụng hàm này ở trên để lấy mảng rồi viết một số hàm khác để chỉ lấy phần đầu và phần cuối của mảng này và kết xuất phần còn lại (nhưng vẫn cần biết cách thực hiện điều đó) Như chắc chắn đầu giữa cuối

câu trả lời hay nhất

Tôi sẽ giải quyết nó trong khi bạn đọc tập tin.

// tổng cộng có bao nhiêu cột
$tổng = đếm( $row );

// lấy nửa điểm (và làm tròn lên nếu là số thập phân)
$middle = ceil($total/2 );

// Tạo một hàng mới sử dụng hàng đầu tiên (0), hàng cuối ($total-1) và hàng giữa ($middle)
$new_row = mảng( $row[0], $row[ $middle ], $row[ $total-1 ] );

Nhúng vào mã của bạn:

hàm csv_to_array($filename='', $delimiter=',') {
if(!file_exists($filename) || !is_readable($filename)){
trả về SAI;
}

tiêu đề $ = NULL;
$data = mảng();
if (($handle = fopen($filename, 'r')) !== FALSE) {
while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) {

$tổng = đếm( $row );
$middle = ceil($total/2 );
$new_row = mảng( $row[0], $row[ $middle ], $row[ $total-1 ] );

if(!$header) {
$header = $new_row;
}khác{
$data[] = array_combine($header, $new_row);
}
}

fclose($xử lý);
}

trả về dữ liệu $;
}

Bạn có thể tiết kiệm sức mạnh xử lý bằng cách giả sử rằng mọi hàng trong toàn bộ tệp đều có cùng số cột. Nếu vậy thì bạn chỉ cần tính toán một lần như sau:

hàm csv_to_array($filename='', $delimiter=',') {
if(!file_exists($filename) || !is_readable($filename)){
trả về SAI;
}

tiêu đề $ = NULL;
$data = mảng();
if (($handle = fopen($filename, 'r')) !== FALSE) {
while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) {

if ( !$total ){ // Xác minh xem chúng ta đã có tổng chưa, còn nếu chưa:
$tổng = đếm( $row );
$middle = ceil($total/2 );
}
$new_row = mảng( $row[0], $row[ $middle ], $row[ $total-1 ] );

if(!$header) {
$header = $new_row;
}khác{
$data[] = array_combine($header, $new_row);
}
}

fclose($xử lý);
}

trả về dữ liệu $;
}

Về việc php chỉ chọn cột đầu tiên, giữa và cuối cùng từ tệp csv, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/16322185/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress