Possible Duplicate:
Convert array into csv
Hi,
How to convert array into .txt file?
This is my array:
Array
(
[OrderList_RetrieveByContactResult] => Array
(
[OrderDetails] => Array
(
[0] => Array
(
[entityId] => 156456
[orderId] => 110631
[orderName] => testing2
[statusTypeId] => 15656
[countryCode] => AU
[orderType] => 2
[invoiceNumber] => 1001
[invoiceDate] => 2010-10-19T00:00:00
[userID_AssignedTo] => 245454
[shippingAmount] => 8.95
[shippingTaxRate] => 0
[shippingAttention] => tttesst
[shippingInstructions] => this a test
[shippingOptionId] => 50161
[discountCodeId] => 0
[discountRate] => 0
[totalOrderAmount] => 143.8
[directDebitTypeId] => 0
[directDebitDays] => 0
[isRecur] =>
[nextInvoiceDate] => 0001-01-01T00:00:00
[endRecurDate] => 0001-01-01T00:00:00
[cycleTypeID] => 1
[createDate] => 2010-10-19T05:40:00
[lastUpdateDate] => 2010-10-19T05:40:00
[deleted] =>
[products] => Array
(
[Product] => Array
(
[productId] => 455
[productCode] =>
[productDescription] => testtest
[units] => 3
[unitPrice] => 44.95
[unitTaxRate] => 0
[totalProductPrice] => 134.85
[productName] => Skin Support Tablets
)
)
[addresses] => Array
(
[Address] => Array
(
[addressTypeID] => 8
[addressLine1] => Cebu
[city] => City
[zipcode] => 6000
[state] => cebu
[countryCode] => PH
)
)
)
[1] => Array
(
[entityId] => 315456
[orderId] => 321321
[orderName] => testing
[statusTypeId] => 3213
[countryCode] => AU
[orderType] => 2
[invoiceNumber] => 1002
[invoiceDate] => 2010-10-19T00:00:00
[userID_AssignedTo] => 11711
[shippingAmount] => 8.95
[shippingTaxRate] => 0
[shippingAttention] =>
[shippingInstructions] =>
[shippingOptionId] => 50161
[discountCodeId] => 0
[discountRate] => 0
[totalOrderAmount] => 408.45
[directDebitTypeId] => 0
[directDebitDays] => 0
[isRecur] =>
[nextInvoiceDate] => 0001-01-01T00:00:00
[endRecurDate] => 0001-01-01T00:00:00
[cycleTypeID] => 1
[createDate] => 2010-10-08T18:40:00
[lastUpdateDate] => 2010-10-19T18:36:00
[deleted] =>
[products] => Array
(
[Product] => Array
(
[productId] => 11564
[productCode] =>
[productDescription] =>
[units] => 10
[unitPrice] => 39.95
[unitTaxRate] => 0
[totalProductPrice] => 399.5
[productName] => Acne Clearing Gel
)
)
[addresses] => Array
(
[Address] => Array
(
[addressTypeID] => 8
[addressLine1] => Cebu City
[city] => Cebu
[zipcode] => 6000
[state] =>
[countryCode] => PH
)
)
)
)
)
)
If you want it to be parseable, you can use
var_export
— Outputs or returns a parsable string representation of a variableExample
If you want it to look like in your question, you pass
TRUE
as the second param toprint_r
:EDIT you mentioned in the comments that you want the array to be transformed to a CSV file. This is more difficult. Your array is nested, while a CSV file is basically a single dim array, e.g.
would be equivalent to a CSV file where the first rows is the array keys and the second row the values.
The single dims arrays are usually inside another array, so you have a collection like this:
Here, you'd have to get the keys first and then fetch only the values from the array for the subsequent lines, e.g.
The problem is, your array is nested even deeper. Where would you put the address array? The only feasible approach would be to go over the array and fetch only those keys and values that contain a scalar type and linearize any nested arrays, e.g.
has to be turned into
In case this isnt clear, here is an illustration what goes where:
Luckily, this can be achieved with Iterators:
The above code should output the described format. See http://www.ideone.com/I70dD for an example.
To write this to a file, you can either assemble this to a string variable and then
file_put_contents
it all at once or you use a filepointer and write it line by line. If you dontimplode
it but iterate over the$flattened
array, you can also usefputcsv
.Maybe what you want is fputcsv ?
If you want to save a variable in a text file, you could use the
serialize()
/unserialize()
functions for that:And restore it...