我在基本脚本中看到一些(应该是简单的)PHP代码的奇怪问题。
我有一个多维关联数组$ accounts,在使用var_dump时看起来像这样:
Array(4) {
[0] =>
array(3) {
'account' =>
string(37) "Flood Cleanup City - Desktop - Exact "
'parameter' =>
string(23) "flood_cleanup_city_d_em"
'phone' =>
string(0) ""
}
[1] =>
array(3) {
'account' =>
string(51) "Flood Cleanup City - Desktop - Exact Call Extension"
'parameter' =>
string(3) "N/A"
'phone' =>
string(0) ""
}
[2] =>
array(3) {
'account' =>
string(38) "Flood Cleanup City - Desktop - Phrase "
'parameter' =>
string(23) "flood_cleanup_city_d_pm"
'phone' =>
string(0) ""
}
[3] =>
array(3) {
'account' =>
string(52) "Flood Cleanup City - Desktop - Phrase Call Extension"
'parameter' =>
string(3) "N/A"
'phone' =>
string(0) ""}
}
所以,直截了当。此数组在函数中生成,并作为返回值传递给变量$ listAccounts。
我只想迭代$ listAccounts并提取'帐户'价值,所以我写了这个:
foreach($listAccount as $account)
{
$accountName = $account['account'];
echo $accountName;
}
我希望它会输出四个帐户字符串。相反,$ account [' account']返回NULL。但是,如果我使用array_keys函数从数组中提取键的名称并使用此代码,它可以正常工作:
$accountName = $account[array_keys($account)[0]];
如果它可能是相关的,生成多维数组的函数使用fgetcsv()函数来解析CSV文件:
function getAccounts()
{
$handle = fopen("water.csv","r");
$header = NULL;
$accounts = array();
$n = 0;
while (!feof($handle)) {
$account = fgetcsv($handle);
if(!$header)
{
$header = $account;
}
else
{
$accounts[] = array_combine($header,$account);
}
}
fclose($handle);
echo var_dump($accounts);
return $accounts;
}
答案 0 :(得分:1)
你在"帐户中有一个奇怪的第一个隐形符号"关键名称。请在解析CSV文件后过滤数据。