簡體   English   中英

如何使用 php 從 csv 文件中動態獲取列值

[英]How to dynamically get column value from csv file using php

我在 csv 文件名和電話中有兩列。 如果我將電話號碼作為變量$searchStr = "6059574150"; 它必須在 csv 文件中找到號碼,我需要該聯系人姓名才能像這樣動態訪問 $data['Name'] 而不是 $data['0'] MY php 代碼

$header = array();
$final_result = array();
$file = fopen('example.csv', 'r');
if($file){
$row = 1;
while ($data = fgetcsv($file, 10000, ",")){

    if($row == 1){
        $header = array_values($data);
    }
    else{
        $final_result[] = array_combine($header, array_values($data));
    }

$row++;
}

}
    echo "<pre>";
    print_r($final_result);

我的 output 是這樣的

Array
 (
[0] => Array
    (
        [Names] => MICHAEL
        [Phone] => 6059342614
    )

[1] => Array
    (
        [Names] => GLENN
        [Phone] => 6056296061
    )


 )

如何直接訪問列? 像這樣 $data['Name']

如果電話號碼是唯一的,您可以執行以下操作:

<?php

$final_result = array();
$file = fopen('example.csv', 'r');

if($file) {
    $header = fgetcsv($file, 10000, ",");

    while ($data = fgetcsv($file, 10000, ",")) {
        $final_result[$data[1]] = $data[0];
    }

}
?>

如果每個電話號碼有多個姓名(人),則可以將它們連接起來$final_result[$data[1]].= ','. $data[0]; $final_result[$data[1]].= ','. $data[0]; .

示例結果:

array (
  phone1 => 'name1',
  phone2 => 'name2',
  phone3 => 'name3',
)

要從電話號碼中搜索姓名,您必須執行以下操作: $final_result[phone_number]並獲得姓名。


在您的 output 數組“$final_result”中,您可以通過以下方式通過電話號碼查找名稱:

$foundKey = array_search('pone_number_to_search', array_column($final_result, "Phone"));

$foundNames = $final_result[$foundKey]["Names"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM