キーを使用して配列から最初の要素を取得します。

トリスタン:

私はトラブルこの問題をデバッグを持っています(JSから来る)PHPに非常に新しいです。
私は、インポートされている.csvHTMLテーブルにレンダリングするために、私はテーブルを注文することができますので、列を取得しようとしています。テーブルには、5つの見出し(日付、TransactionNumber、CustomerNumberの、リファレンス、金額)が含まれています。私は除いて、すべての値を取得することができますDate列。それはちょうど空の値を返します。

<?php
  $rows = array_map('str_getcsv', file('BankTransactions.csv'));
  $header = array_shift($rows);
  $csv = array();
  foreach ($rows as $row) {
    $csv[] = array_combine($header, $row);
  }

  print_r($csv[0]['Date']);
  print_r("\n")
?>
// .csv
Date,TransactionNumber,CustomerNumber,Reference,Amount
2016-12-10 1:54PM,NUF5V6PT3U,5156,Purchase at JB HiFi,-2498
2016-12-4 4:54AM,J82964EFPS,2347,Refund,5424
2016-12-12 5:25PM,ZUFBQGCKTK,5683,Fee Refund,254
2016-12-01 12:00AM,XHNCASYLBR,2347,Purchase at Coles,-8873
2016-11-23 10:34PM,S98EBHDWG3,3423,Wages,198700
2017-09-23 9:34AM,MPNQYKVJ3G,4657,Purchase at Chemist Warehouse,-584
2015-11-23 10:34PM,74CQKEGSHB,2173,Refund,-3514
2015-11-23 10:35PM,WPTJMNVH4U,4527,Purchase at Hungry Monkey,45245
2017-01-01 12:00AM,U6BD3M75FD,7577,Interest,2778
// Array received from `.csv`
Array
(
    [0] => Array
        (
            [Date] => 2016-12-10 1:54PM
            [TransactionNumber] => NUF5V6PT3U
            [CustomerNumber] => 5156
            [Reference] => Purchase at JB HiFi
            [Amount] => -2498
        )

    [1] => Array
        (
            [Date] => 2016-12-4 4:54AM
            [TransactionNumber] => J82964EFPS
            [CustomerNumber] => 2347
            [Reference] => Refund
            [Amount] => 5424
        )

    [2] => Array
        (
            [Date] => 2016-12-12 5:25PM
            [TransactionNumber] => ZUFBQGCKTK
            [CustomerNumber] => 5683
            [Reference] => Fee Refund
            [Amount] => 254
        )

    [3] => Array
        (
            [Date] => 2016-12-01 12:00AM
            [TransactionNumber] => XHNCASYLBR
            [CustomerNumber] => 2347
            [Reference] => Purchase at Coles
            [Amount] => -8873
        )

    [4] => Array
        (
            [Date] => 2016-11-23 10:34PM
            [TransactionNumber] => S98EBHDWG3
            [CustomerNumber] => 3423
            [Reference] => Wages
            [Amount] => 198700
        )

    [5] => Array
        (
            [Date] => 2017-09-23 9:34AM
            [TransactionNumber] => MPNQYKVJ3G
            [CustomerNumber] => 4657
            [Reference] => Purchase at Chemist Warehouse
            [Amount] => -584
        )

    [6] => Array
        (
            [Date] => 2015-11-23 10:34PM
            [TransactionNumber] => 74CQKEGSHB
            [CustomerNumber] => 2173
            [Reference] => Refund
            [Amount] => -3514
        )

    [7] => Array
        (
            [Date] => 2015-11-23 10:35PM
            [TransactionNumber] => WPTJMNVH4U
            [CustomerNumber] => 4527
            [Reference] => Purchase at Hungry Monkey
            [Amount] => 45245
        )

    [8] => Array
        (
            [Date] => 2017-01-01 12:00AM
            [TransactionNumber] => U6BD3M75FD
            [CustomerNumber] => 7577
            [Reference] => Interest
            [Amount] => 2778
        )

)

CBroe:

あなたのCSVファイルはおそらくUTF-8でエンコードされ BOM、バイトオーダーマーク。

ファイルを読み込む際に、PHPは(まだ)が正しくのBOMを処理していないので、あなたがファイルから読み込ま非常に最初の行は、まだ開始時に、それが含まれていますし、最初の列の値、そのためにも、まだそれが含まれています。中にあなたの鍵だから$csv配列は、実際にはないDate、しかし[BOM]Date、しかし、あなたがしますprint_r出力にそれが表示されない(BOMは、それ自体が、実際に「可視」ではありません。)

参照してください。複数のUTF-8 BOMの配列を除去する方法https://gist.github.com/chrisguitarguy/6096271を BOMを削除する方法を提案するために。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=281083&siteId=1