CSV boyutlu dizide tuşları tanımlamak

3 Cevap php

Ben iki dizi, bir shoppingcart ve csv-dosyasından çözümlenmiş diğeri gelen bir karşılaştırmak istiyorum. Alışveriş sepeti dizi bu gibi görünüyor:

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
        )
)

Benim csv dosyasından dizi ancak bu gibi görünüyor

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

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

)

ve bu kodu kullanarak inşa edilir

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

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

          $checkitems[] = $result;
          }

    fclose($file);

nasıl ben ikinci dizideki anahtarları ilki bu maç için alabilirim? (0 id olacağını ve 1 isim olacaktı ve böylece o yüzden)

şimdiden teşekkürler

3 Cevap

Bu böyle bir şey?

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

Eskidizi sonra ikinci 'csv' dizidir $ Diyelim ki:

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

Test edilmiş, ancak bu anahtar değerleri haritalama bir yolu yok ..

csv ilişkilendirilebilir bir anahtar değeri depolama yöntemi değildir. Eğer kendine bunu yapmak gerekir bunu yapmak istiyorum.

Her etkinlikte kullanabilirsiniz array_combine