如何使用 php 从 csv 文件中动态获取列值
How to dynamically get column value from csv file using php
我在 csv 文件名称和 Phone 中有两列。如果我给 phone 数字作为变量 $searchStr = "6059574150";
它必须在 csv 文件中找到数字,我需要那个联系人姓名来动态访问 $data['Name'] 而不是 $data ['0']
我的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);
我的输出是这样的
Array
(
[0] => Array
(
[Names] => MICHAEL
[Phone] => 6059342614
)
[1] => Array
(
[Names] => GLENN
[Phone] => 6056296061
)
)
如何直接访问列?像这样 $data['Name']
如果 phone 个数字是唯一的,您可以这样做:
<?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];
}
}
?>
如果每个 phone 号码有多个姓名(人),您可以将它们串联起来 $final_result[$data[1]] .= ',' . $data[0];
。
示例结果:
array (
phone1 => 'name1',
phone2 => 'name2',
phone3 => 'name3',
)
要从 phone 号码中搜索姓名,您必须执行以下操作:$final_result[phone_number]
然后您会得到姓名。
在您的输出数组“$final_result”中,您可以通过 phone 数字查找姓名,方式如下:
$foundKey = array_search('pone_number_to_search', array_column($final_result, "Phone"));
$foundNames = $final_result[$foundKey]["Names"];
我在 csv 文件名称和 Phone 中有两列。如果我给 phone 数字作为变量 $searchStr = "6059574150";
它必须在 csv 文件中找到数字,我需要那个联系人姓名来动态访问 $data['Name'] 而不是 $data ['0']
我的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);
我的输出是这样的
Array
(
[0] => Array
(
[Names] => MICHAEL
[Phone] => 6059342614
)
[1] => Array
(
[Names] => GLENN
[Phone] => 6056296061
)
)
如何直接访问列?像这样 $data['Name']
如果 phone 个数字是唯一的,您可以这样做:
<?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];
}
}
?>
如果每个 phone 号码有多个姓名(人),您可以将它们串联起来 $final_result[$data[1]] .= ',' . $data[0];
。
示例结果:
array (
phone1 => 'name1',
phone2 => 'name2',
phone3 => 'name3',
)
要从 phone 号码中搜索姓名,您必须执行以下操作:$final_result[phone_number]
然后您会得到姓名。
在您的输出数组“$final_result”中,您可以通过 phone 数字查找姓名,方式如下:
$foundKey = array_search('pone_number_to_search', array_column($final_result, "Phone"));
$foundNames = $final_result[$foundKey]["Names"];