2016-10-12 3 views
0

私はCSVファイルを処理し、すべてが言わおよび終了したとき、私は私が今やろうとしていますこれは何フォーマットの配列データ

Array 
(
    [0] => Array 
     (
      [Title] => 11AA002 
      [Supplier Name] => Supplier A 
      [Supplier Name2] => 
      [Effects2] => Bass 
      [Effects3] => Percussion 
      [Effects4] => Jazz/Piano 
      [Effects5] => Drums 
      [Components2] => Kit 
      [Components3] => 
      [Components4] => 
      [Technology Areas2] => Something 
      [Technology Areas3] => 
      [Technology2] => Cold 
      [Technology3] => Hot 
      [Technology4] => 
      [Technology5] => 
      [Briefs & Brands2] => 
      [Briefs & Brands3] => 
     ) 
    //Other elements  
) 

のようなもので終わるには、データの配列を処理しています。私がしようとしている最初のことは、空の値を持つものを削除することです。このために私は次のことを試みています

foreach($csvArray as $row) { 
    foreach($row as $key => $value) { 
     if(empty($value)) { 
      unset($key);  
     } 
    } 
} 

これは配列から要素を削除するようには思えません。上記の例では、サプライヤName2のようなものは削除する必要があります。

私が整理しようとしているもののいくつかがありますが、どこから始めるべきかはわかりません。タイトルは常にYYSUPCCCの形式でなければなりません.YYは年、SUPは最初のサプライヤーの3文字、CCはカウントです。上記の例は正しくないので、16SUP001でなければなりません。同じサプライヤを持つ次の配列要素は002となります。

このようなことは可能でしょうか?何かアドバイスをいただきました。あなたは、元の配列からキーの設定を解除する必要が

おかげ

+0

'unset()'問題を修正するための回答がありましたが、直面しているその他の問題については新しい質問を投稿する必要があります。 – JazZ

答えて

0

foreach($csvArray as $key1 => $row) { 
    foreach($row as $key => $value) { 
     if(empty($value)) { 
      unset($csvArray[$key1][$key]);  
     } 
    } 
} 

はそれがお役に立てば幸いです。

+0

どのように$行データを取得していますか? –

+0

@RubabHossainありがとう。私はタイプミスを修正しました。 – JazZ

+0

正しい形式でタイトルを確認する方法はありますか?ありがとう –

1

unset($ key);

あなたが望むように、配列要素ではなく、キーの後に指定された変数の設定を解除しようとしています(この変数は存在しないため、この変数は存在しません)。後者を行うには、代わりにソース配列で作業する必要があります。すなわち:

foreach($csvArray as $k=>$row) { 
    foreach($row as $key => $value) { 
     if(empty($value)) { 
      unset($csvArray[$k][$key]);  
     } 
    } 
} 

代わりに。直接配列を変更する$rowへの参照を&使用

+0

素晴らしい答え! – JazZ

+0

Lol、downvote ... StackOverflowの深刻なビジネス:) –

+0

ちょうど公正にしてください。それはまさに私と同じ答えです...誰が私の記事をダウンボトムするかを見るには1000人の人が必要です。 ; ) – JazZ

2

、ちょうどそれをフィルタリング:これだけです

foreach($csvArray as &$row) { 
    $row = array_filter($row); 
} 

を。

関連する問題