csv

2010-04-12 5 views
1

에서 다차원 배열로 키 정의 shoppingcart에서 가져온 배열과 CSV 파일에서 구문 분석 한 두 배열을 비교하고 싶습니다. 쇼핑 카트 배열은 다음과 같습니다csv

Array 
(
    [0] => Array 
     (
      [id] => 7 
      [qty] => 1 
      [price] => 07.39 
      [name] => walkthebridge 
      [subtotal] => 7.39 
     ) 

    [1] => Array 
     (
      [id] => 2 
      [qty] => 1 
      [price] => 07.39 
      [name] => milkyway 
      [subtotal] => 7.39 
     ) 
) 
내 CSV 파일에서 배열 그러나이

Array 
(
    [0] => Array 
     (
      [0] => 1 
      [1] => walkthebridge 
      [2] => 07.39 
     ) 

    [1] => Array 
     (
      [0] => 2 
      [1] => milkyway 
      [2] => 07.39 
     ) 

)

처럼 보이는이 코드

$checkitems = array(); 
    $file = fopen('checkitems.csv', 'r'); 

      while (($result = fgetcsv($file)) !== false) { 

      $checkitems[] = $result; 
      } 

    fclose($file); 
를 사용하여 구축이다

어떻게 두 번째 배열의 키를 첫 번째 배열의 키와 일치시킬 수 있습니까?

$newArray=array(); 
foreach($oldArray as $v){ 
    $t=array(); 
    $t['id']=$v[0]; 
    $t['name']=$v[1]; 
    // etc... 
    $newArray[]=$t; 
} 

되지 않음 : $ oldArray는 두 번째 'CSV'배열입니다

+0

있다 사용할 수 있습니다. –

+0

mhm, csv에는 수량에 대한 필드가 없으며 두 배열에 모두 표시됩니다. 내가 지금 올바르게 (즉, "id") 키를 매핑 했으므로 더 이상 문제가 없어야하며, 그렇지 않습니까? – mourique

답변

2

이와 비슷한 기능이 있습니까?

while (($result = fgetcsv($file)) !== false) { 
    $checkitems[] = array(
     'id' => $result[0], 
     'name' => $result[1], 
     'price' => $result[2] 
    ); 
} 
+0

이것은 더 깨끗합니다 :) 덕분에 그것이 매력처럼 작동합니다. – mourique

1

말할 수 있습니다 사전에

감사 (0 그래야하는 것은 ID 될 것이다, 그리고 1 등 이름 및 것입니다) 테스트했지만 키 값을 매핑하는 한 가지 방법입니다.

+0

위대한 물건! 정말 고마워. :) – mourique

0

csv는 연관 키 값 저장 방법이 아닙니다. 그렇게하고 싶다면 자신이 직접해야합니다.

어떤 경우에 당신은 당신의 CSV의 열 0 수량 필드 또는 ID에 관련된 경우 예에 모호함이 array_combine