Подскажите пожалуйста, в API сервиса я получаю многомерный массив, который содержит объект в виде массива. Функцией
foreach
я получил значения этих массивов в виде строки.
Выглядит это
так
Однако, значения массива идут подряд в виде одной переменной, как можно их разделить на отдельные переменные, чтобы потом их использовать?
Например, так:
Вот код:
<?php
error_reporting(-1);
ini_set('display_errors', 1);
require_once '../config.php';
require_once '../../autoloader.php';
use ArmtekRestClient\Http\Exception\ArmtekException as ArmtekException;
use ArmtekRestClient\Http\Config\Config as ArmtekRestClientConfig;
use ArmtekRestClient\Http\ArmtekRestClient as ArmtekRestClient;
try {
// init configuration
$armtek_client_config = new ArmtekRestClientConfig($user_settings);
// init client
$armtek_client = new ArmtekRestClient($armtek_client_config);
$pinnum = $_GET["pin"];
if (!empty($pin)) echo "Вы не указали номер детали";
$params = [
'VKORG' => '4170'
,'KUNNR_RG' => '43069963'
,'PIN' => $pinnum
,'BRAND' => ''
,'QUERY_TYPE' => ''
,'KUNNR_ZA' => ''
,'INCOTERMS' => ''
,'VBELN' => ''
];
// requeest params for send
$request_params = [
'url' => 'search/search',
'params' => [
'VKORG' => !empty($params['VKORG'])?$params['VKORG']:(isset($ws_default_settings['VKORG'])?$ws_default_settings['VKORG']:'')
,'KUNNR_RG' => isset($params['KUNNR_RG'])?$params['KUNNR_RG']:(isset($ws_default_settings['KUNNR_RG'])?$ws_default_settings['KUNNR_RG']:'')
,'PIN' => isset($params['PIN'])?$params['PIN']:''
,'BRAND' => isset($params['BRAND'])?$params['BRAND']:''
,'QUERY_TYPE' => isset($params['QUERY_TYPE'])?$params['QUERY_TYPE']:''
,'KUNNR_ZA' => isset($params['KUNNR_ZA'])?$params['KUNNR_ZA']:(isset($ws_default_settings['KUNNR_ZA'])?$ws_default_settings['KUNNR_ZA']:'')
,'INCOTERMS' => isset($params['INCOTERMS'])?$params['INCOTERMS']:(isset($ws_default_settings['INCOTERMS'])?$ws_default_settings['INCOTERMS']:'')
,'VBELN' => isset($params['VBELN'])?$params['VBELN']:(isset($ws_default_settings['VBELN'])?$ws_default_settings['VBELN']:'')
,'format' => 'json'
]
];
// send data
$response = $armtek_client->post($request_params);
// in case of json
$json_responce_data = $response->json();
} catch (ArmtekException $e) {
$json_responce_data = $e -> getMessage();
}
//
echo "<h1>Поиск по номеру: ".$pinnum."</h1>";
json_encode($json_responce_data); // Выводит многомерный массив
$respBase = (array) $json_responce_data->RESP;
$resp = array_filter(array_map(function ($next) {
$next = (array) $next;
return [
'PIN' => $next['PIN'],
'BRAND' => $next['BRAND'],
'NAME' => $next['NAME'],
'RVALUE' => $next['RVALUE'],
'VENSL' => $next['VENSL'],
'PRICE' => $next['PRICE'],
'DLVDT' => $next['DLVDT'],
];
}, $respBase));
foreach ($resp as $next => $value ) { // Раскладываем массив на ключи и значения
foreach ($value as $key => $data) {
echo $data . "</br>"; // Отображает все значения массива
}
}
echo '<h1>Массив </h1></br><pre>'; print_r($resp); echo '</pre>'; // Выводит массив, значением которого являются массивы
?>
P.S. Пробовал использовать
list()
но так как на выходе получаю несколько массивов, функция работает не корректно.
P.P.S Программирование на ооочень низком уровне, извините :(
P.P.P.S Задавал уже вопрос касательно этого
проекта, но сейчас снова тупик