2016-11-02 3 views
0

i array_diff mit diesem Code möchte ich auch immer bin Ausgang aber gleichzeitig Fehlerarray_diff immer Fehler Array String-Konvertierung php

"Array String-Konvertierung" auftreten

ich codeigniter verwende, ich bin immer Post Wert im zweiten Array (Listingdata) mit Methode $ this-> input-> post(); , aber mein erstes Array bekommt einen dynamischen Schlüssel und Wert, dann geben diese beiden Array-Diffs mir eine Ausgabe, aber einige Zeit bekommen einen Fehler.

Bitte helfen Sie mir

Jede Lösung immer willkommen.

if(isset($_POST)){ 
       foreach($_POST as $key => $value) { 

        $arr[$key] = $value; // making array 
       } 
      } 

      $result = array_diff($arr,$listingdata); 
      print_r($result); 
      print_r($arr); 
      print_r($listingdata); 

My $ arr Array

Array 
(
    [itemTitle] => fdafdas 
    [subtitle] => fadsfdas 
    [quantity] => 12 
    [itemDescription] => fdas 
    [hide_ebay_id] => 89 
    [ebay_user] => Array 
     (
      [0] => 
     ) 

    [ebay_category] => 2984 
    [e_sub_cat] => 20433 
    [e_second_child_sub_cat] => 117027 
    [e_third_child_sub_cat] => 
    [ebay_upc] => 31231241341 
    [Brand] => Unbranded 
    [MPN] => Does_Not_Apply 
    [Model] => fsdf 
    [Country/Region_of_Manufacture] => Unknown 
    [listingType] => FixedPriceItem 
    [listingduration] => Days_5 
    [buy_it_now_price] => 20.00 
    [shippingtype] => Flat 
    [fshippingservice] => USPSPriorityFlatRateBox 
    [shippingservicecost] => 2.0 
    [shippingsac] => 3.0 
    [internationalhc] => 
    [paypalemailaddress] => [email protected] 
    [dispatchtimemax] => 3 
    [location] => CA 
    [ebaycountry] => 
    [ebay_paypalemail] => 
    [ReturnsAccepted] => ReturnsAccepted 
    [returnswithin] => Days_14 
    [refundoption] => MoneyBack 
    [shippingcostpaidbyoption] => Seller 
    [policydescription] => wqdewvfdgbfdggrbf 
) 

Das ist meine andere Array

Array 
(
    [itemTitle] => fdafdas 
    [subTitle] => fadsfdas 
    [categoryId] => 117027 
    [itemDescription] => fdas 
    [listingType] => FixedPriceItem 
    [listingDuration] => Days_5 
    [startPrice] => 
    [buyItNowPrice] => 20.00 
    [quantity] => 12 
    [upc] => 31231241341 
    [paypalEmailAddress] => [email protected] 
    [returnWithin] => Days_14 
    [RefundOption] => MoneyBack 
    [ShippingCostPaidByOption] => Seller 
    [returnsAccepted] => ReturnsAccepted 
    [shippingType] => Flat 
    [cshippingService] => 
    [fshippingService] => USPSPriorityFlatRateBox 
    [dcPostalcode] => 
    [ShippingServiceCost] => 2.0 
    [dshippingPackage] => 
    [shippingHandlingcost] => 
    [shippingServiceAdditionalCost] => 3.0 
    [currency] => USD 
    [country] => 
    [location] => CA 
    [dispatchTimeMax] => 3 
    [pictureUrl] => Array 
     (
      [0] => http://jaftech.in/ashprey/uploads/69.jpg 
     ) 

    [policyDescription] => wqdewvfdgbfdggrbf 
    [internationalShipping] => 
    [internationalShippingType] => 
    [internationalShippingServiceCost] => 
    [internationalshippingServiceAdditionalCost] => 
    [cinternationalshippingService] => 
    [finternationalshippingService] => 
    [internationalShipToLocation] => 
    [internationaloriginatingPostalCode] => 
    [internationalshippingHandlingcost] => 
    [ishippingPackage] => PackageThickEnvelope 
    [pid] => 89 
) 
+0

Sie möchten einen Wert für jeden Schlüssel in einem Array festlegen. Wenn der Wert leer sein soll, setzen Sie ihn einfach auf "". Außerdem möchten Sie in Ihrem Array nach jedem Schlüssel => einen Wert angeben, sonst haben Sie noch mehr Fehler. Versuchen Sie diese zwei Schritte pls und posten Sie erneut, wenn Sie noch irgendwelche Fehler haben. – Johannes

+0

Menge $ arr = Array(); vor if Schleife – coder

+0

'array_diff()' kann nicht mehrdimensionale Arrays behandeln. – simon

Antwort

0

Dies liegt daran, array_diff Werte vergleicht, nachdem die beiden verglichenen Werte in String typecasting (siehe documentation notes).

Beide Arrays enthalten ein weiteres Array (ebay_user und zweite pictureUrl).

Siehe this answer für rekursive Array_diff, die in Ihrem Fall funktionieren sollte.