I am pulling from a Magento instance using the SOAP V2 API. Magento is returning the results of my requests as multidimensional arrays, which i am encoding in json to help parse into html. However when i run into this format:
array(
array(
array()
)
)
I am getting an Notice: Array to string conversion error.
Here is my code:
//Make sure a query is set
if (!empty($_GET['q'])) {
$getQuery = $_GET['q'];
//Requests
switch ($getQuery) {
case 'allorders':
$result = json_decode(json_encode($client->salesOrderList($session)), true);
break;
case 'inventory':
$result = json_decode(json_encode($client->catalogInventoryStockItemList($session, array(695, 694, 693, 692))), true);
break;
case 'products':
$result = json_decode(json_encode($client->catalogProductList($session)), true);
break;
}
//if (!empty($result)) {
?>
<table>
<thead>
<tr>
<th><?php echo implode('</th><th>', array_keys(current($result))); ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($result as $row): $row; ?>
<tr>
<td><?php echo implode('</td><td>', $row); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php
//}
} else {
echo "No Results Found";
}
// Close the session
$client->endSession($session);
The error is happening on the second implode in the for loop.
Update 14:45pm CST
This is what the actual output looks like
Array
(
[0] => Array
(
[product_id] => 481
[sku] => 012
[name] => Twill Cap
[set] => 9
[type] => simple
[category_ids] => Array
(
[0] => 3
[1] => 4
[2] => 5
[3] => 11
)
[website_ids] => Array
(
[0] => 2
)
)
)
As long as your data does not add another level o data:
<?php foreach($bar as $row): ?>
<tr>
<td><?php echo implode('</td><td>', array_map(function($e) {
return is_array($e) ? implode(', ', $e) : $e;
}, $row)); ?></td>
</tr>
<?php endforeach; ?>