Задать вопрос

Как присвоить переменным значения массива в PHP?

Подскажите пожалуйста, в API сервиса я получаю многомерный массив, который содержит объект в виде массива. Функцией foreach я получил значения этих массивов в виде строки.

Выглядит это так

Однако, значения массива идут подряд в виде одной переменной, как можно их разделить на отдельные переменные, чтобы потом их использовать?
Например, так:
16c79f5c46904743b703c1010bb7e664.jpg

Вот код:
<?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 Задавал уже вопрос касательно этого проекта, но сейчас снова тупик
  • Вопрос задан
  • 3058 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
pashted
@pashted
тыжпрограммист
php.net/manual/ru/function.extract.php
Также там сказано, что list работает только на числовых массивах
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ant1vit
@ant1vit
foreach($a as $k=>$v){
$$k = $v;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы