Ze względu na charakter protokołu HTTP oraz sposób działania curl_setopt funkcja $ anarray nie może być przekazana bezpośrednio jako tablica.
następujące oświadczenie:
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
pobiera tablicę parametrów POST i dla każdego z nich musi być string name i STRING wartość. Zamiast tego podajesz wartość tablicy, więc procesor PHP jest zmuszony przekształcić go w ciąg znaków przy użyciu jakiegoś lame wbudowanego algorytmu, który powoduje wydanie wcześniej wspomnianego powiadomienia ("Array to string conversion in ...").
Tak więc, aby poprawnie przekazać tę tablicę ($ anarray) na drugą stronę, trzeba samemu zająć się jej kodowaniem (w łańcuch), a druga strona musi zadbać o jej dekodowanie (z ciągu).
Moje podejście w takich sytuacjach to JSON. Jest odpowiedni prawie we wszystkich przypadkach.Wszystko co musisz zrobić, to stosuje się następujące techniki:
$data=array(
'anarray'=>json_encode($anarray),
'var1'=>$var1,
'var2'=>$var2
);
A potem, po drugiej stronie połączenia byś pobrać oryginalnej tablicy następujący sposób:
$anarray=json_decode($_POST['anarray'],true); // true indicates for associative array rather than an object
patrz http: // stackoverflow .pl/questions/3772096/posting-multidimensional-array-with-php-and-curl – Julien