0

i want array_diff using this code i am also getting output but same time error occur

"Array to string conversion"

I am using codeigniter, i am getting post value in second array(listingdata) with method $this->input->post(); , but my first array getting some dynamic key and value then this two array diff give me output but some time getting error.

Please Help me

Any solution always welcome.

 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] => sam@jaff.in
    [dispatchtimemax] => 3
    [location] => CA
    [ebaycountry] => 
    [ebay_paypalemail] => 
    [ReturnsAccepted] => ReturnsAccepted
    [returnswithin] => Days_14
    [refundoption] => MoneyBack
    [shippingcostpaidbyoption] => Seller
    [policydescription] => wqdewvfdgbfdggrbf
)

This is my another Array

Array
(
    [itemTitle] => fdafdas
    [subTitle] => fadsfdas
    [categoryId] => 117027
    [itemDescription] => fdas
    [listingType] => FixedPriceItem
    [listingDuration] => Days_5
    [startPrice] => 
    [buyItNowPrice] => 20.00
    [quantity] => 12
    [upc] => 31231241341
    [paypalEmailAddress] => sam@jaff.in
    [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
)
Tanveer Khan
  • 77
  • 2
  • 10
  • You want to set a value to every key you have in an array. If you want the value to be empty just set it "". Furthermore you want to give a , after every key => value in your array otherwise you will have even more Errors. Try those two steps pls and post again if you still have any errors. – Johannes Nov 02 '16 at 15:07
  • set $arr = Array(); before if loop – coder Nov 02 '16 at 15:11
  • `array_diff()` can't handle multidimensional arrays. – simon Nov 02 '16 at 15:15

1 Answers1

0

This is because array_diff compares values after typecasting both compared values to string (see documentation notes).

Both of your arrays contain another array (ebay_user and second pictureUrl).

See this answer for recursive array_diff, which should work in your case.

Community
  • 1
  • 1
Martin Janeček
  • 560
  • 4
  • 20