[英]PHP Array not returning proper value
我有一個數組
$row['sku'] = '12345';
$row['name'] = 'Spaceballs';
當我var_dump
整個數組時,我得到了所有值。 但是,如果我嘗試僅獲得$row['sku']
則會得到NULL
。 知道什么會導致此問題嗎?
編輯:我正在嘗試通過一個相當大的產品CSV進行排序。 有問題的代碼在這里:
$fieldColumns = fgetcsv($file); // Getting the first row with column descriptors
$r = fgetcsv($file); // This is looped, grabs the next row containing values
$row = array_combine($fieldColumns, $r); // Merging the two arrays
var_dump($row,$row['sku']);die(); // Exactly like in my code, the 'sku' is dumping NULL
有問題的CSV是這樣的:
sku,name,etc
12345,Spaceballs,etc
因為您沒有顯示從var_dump( var_dump($row,$row['sku']);
)中得到的信息,並且沒有提供完整的PHP腳本,所以不可能找出問題所在。
對我來說,它沒有任何問題:
source.csv:
sku,name
12345,Spaceballs
321,test1
654,test2
PHP腳本:
<?php
if (false !== ($file = fopen('source.csv', 'r'))) {
$header = fgetcsv($file);
while ($row = fgetcsv($file)) {
$row = array_combine($header, $row);
var_dump($row, $row['sku']);
}
} else
echo "Can't open the CSV file!";
我挖了一下,傳輸文件的系統不知道如何處理UTF-8編碼,並在文件開頭添加了一些垃圾字符。 我將得到的輸出將顯示兩個sku元素。 var_dump給我第一個元素的字符串(6)和第二個元素的字符串(3),確認了這一點。 快速瀏覽dos2unix可解決此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.