gpt4 book ai didi

PHP: undefined index ,即使它存在

转载 作者:可可西里 更新时间:2023-11-01 13:14:38 25 4
gpt4 key购买 nike

这让我发疯......我尝试解析一个 csv 文件,但出现了一个非常奇怪的行为。

这是csv

action;id;nom;sites;heures;jours
i;;"un nom a la con";1200|128;;1|1|1|1|1|1|1

现在是php代码

$required_fields = array('id','nom','sites','heures','jours');
if (($handle = fopen($filename, "r")) !== FALSE)
{
$cols = 0;
while (($row = fgetcsv($handle, 1000, ";")) !== FALSE)
{
$row = array_map('trim',$row);
// Identify headers
if(!isset($headers))
{
$cols = count($row);
for($i=0;$i<$cols;$i++) $headers[strtolower($row[$i])] = $i;
foreach($required_fields as $val) if(!isset($headers[$val])) break 2;
$headers = array_flip($headers);
print_r($headers);
}
elseif(count($row) >= 4)
{
$temp = array();
for($i=0;$i<$cols;$i++)
{
if(isset($headers[$i]))
{
$temp[$headers[$i]] = $row[$i];
}
}
print_r($temp);
print_r($temp['action']);
var_dump(array_key_exists('action',$temp));
die();
}
}
}

和输出

Array
(
[0] => action
[1] => id
[2] => nom
[3] => sites
[4] => heures
[5] => jours
)
Array
(
[action] => i
[id] =>
[nom] => un nom a la con
[sites] => 1200|128
[heures] =>
[jours] => 1|1|1|1|1|1|1
)
<b>Notice</b>: Undefined index: action in <b>index.php</b> on line <b>110</b>
bool(false)

键“action”存在于 $temp 中,但 $temp['action'] 返回 Undefined 并且 array_key_exists 返回 false。我试过使用不同的键名,但仍然相同。其他键绝对没有问题。

这是怎么回事?

PS: 第 110 行是 print_r($temp['action']);

编辑 1

如果我在 csv 中的每一行的开头添加另一个空字段,操作将正确显示

;action;id;nom;sites;heures;jours
;i;;"un nom a la con";1200|128;;1|1|1|1|1|1|1

最佳答案

第一行的开头可能有一些特殊字符,trim 没有删除它。

尝试以这种方式删除每个非单词字符:

// Identify headers
if(!isset($headers))
{
for($i=0;$i<$cols;$i++)
{
$headers[preg_replace("/[^\w\d]/","",strtolower($row[$i]))] = $i;
....

关于PHP: undefined index ,即使它存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22529854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com