Помогите в php

12
manaz
На сайте с 13.12.2013
Offline
61
1592

Всех добрый день.

Нужна помочь в php с массивом передающего данные в array

Есть скрипт php


<?php
header('Access-Control-Allow-Origin: *');
error_reporting(0);
ISDEKservice::setTarifPriority(
array(233, 137, 139, 16, 18, 11, 1, 3, 61, 60, 59, 58, 57, 83),
array(234, 136, 138, 15, 17, 62, 63, 5, 10, 12)
);

$action = $_REQUEST['isdek_action'];
if (method_exists('ISDEKservice', $action)) {
ISDEKservice::$action($_REQUEST);
}

class ISDEKservice
{
// auth
protected static $account = false; //укажите логин
protected static $key = false; //укажите ключ


protected static $tarifPriority = false;

// Workout
public static function setTarifPriority($arCourier, $arPickup)
{
self::$tarifPriority = array(
'courier' => $arCourier,
'pickup' => $arPickup
);
}

public static function getPVZ()
{
$arPVZ = self::getPVZFile();
if ($arPVZ) {
self::toAnswer(array('pvz' => $arPVZ));
}
self::printAnswer();
}

public static function getLang()
{
self::toAnswer(array('LANG' => self::getLangArray()));
self::printAnswer();
}

public static function calc($data)
{
if (!$data['shipment']['tarifList']) {
$data['shipment']['tariffList'] = self::$tarifPriority[$data['shipment']['type']];
}

if (!$data['shipment']['cityToId']) {
$cityTo = self::sendToCity($data['shipment']['cityTo']);
if ($cityTo && $cityTo['code'] === 200) {
$pretendents = json_decode($cityTo['result']);
if ($pretendents && isset($pretendents->geonames)) {
$data['shipment']['cityToId'] = $pretendents->geonames[0]->id;
}
}
}

if ($data['shipment']['cityToId']) {
$answer = self::calculate($data['shipment']);

if ($answer) {
$answer['type'] = $data['shipment']['type'];
if ($data['shipment']['timestamp']) {
$answer['timestamp'] = $data['shipment']['timestamp'];
}
self::toAnswer($answer);
}
} else {
self::toAnswer(array('error' => 'City to not found'));
}

self::printAnswer();
}

public static function getCity($data)
{
if ($data['city']) {
$result = self::sendToCity($data['city']);
if ($result && $result['code'] == 200) {
$result = json_decode($result['result']);
if (!isset($result->geonames)) {
self::toAnswer(array('error' => 'No cities found'));
} else {
self::toAnswer(array(
'id' => $result->geonames[0]->id,
'city' => $result->geonames[0]->cityName,
'region' => $result->geonames[0]->regionName,
'country' => $result->geonames[0]->countryName
));
}
} else {
self::toAnswer(array('error' => 'Wrong answer code from server : ' . $result['code']));
}
} else {
self::toAnswer(array('error' => 'No city to search given'));
}

self::printAnswer();
}

// PVZ
protected static function getPVZFile()
{

$arPVZ = self::requestPVZ();

return $arPVZ;
}

protected static function requestPVZ()
{
if (!function_exists('simplexml_load_string')) {
self::toAnswer(array('error' => 'No php simplexml-library installed on server'));
return false;
}

$request = self::sendToSDEK('pvzlist', false, 'type=ALL');
$arLL = array();
if ($request && $request['code'] == 200) {
$xml = simplexml_load_string($request['result']);

$arList = array('PVZ' => array(), 'CITY' => array(), 'REGIONS' => array(), 'CITYFULL' => array(), 'COUNTRIES' => array());

foreach ($xml as $key => $val) {

if ($_REQUEST['country'] && $_REQUEST['country'] != 'all' && ((string)$val['CountryName'] != $_REQUEST['country'])) {
continue;
}

$cityCode = (string)$val['CityCode'];
$type = (string)$val['Type'];
$city = (string)$val["City"];
if (strpos($city, '(') !== false)
$city = trim(substr($city, 0, strpos($city, '(')));
if (strpos($city, ',') !== false)
$city = trim(substr($city, 0, strpos($city, ',')));
$code = (string)$val["Code"];

$arList[$type][$cityCode][$code] = array(
'Name' => (string)$val['Name'],
'WorkTime' => (string)$val['WorkTime'],
'Address' => (string)$val['Address'],
'Phone' => (string)$val['Phone'],
'Note' => (string)$val['Note'],
'cX' => (string)$val['coordX'],
'cY' => (string)$val['coordY'],
'Dressing' => (string)$val['IsDressingRoom'],
'Cash' => (string)$val['HaveCashless'],
'Station' => (string)$val['NearestStation'],
'Site' => (string)$val['Site'],
'Metro' => (string)$val['MetroStation'],
'AddressComment' => (string)$val['AddressComment'],
);
if ($val->WeightLimit) {
$arList[$type][$cityCode][$code]['WeightLim'] = array(
'MIN' => (float)$val->WeightLimit['WeightMin'],
'MAX' => (float)$val->WeightLimit['WeightMax']
);
}

$arImgs = array();
if (!is_array($val->OfficeImage)) {
$arToCheck = array(array('url' => (string)$val->OfficeImage['url']));
} else {
$arToCheck = $val->OfficeImage;
}

foreach ($val->OfficeImage as $img) {
if (strstr($_tmpUrl = (string)$img['url'], 'http') === false) {
continue;
}
$arImgs[] = (string)$img['url'];
}

if (count($arImgs = array_filter($arImgs)))
$arList[$type][$cityCode][$code]['Picture'] = $arImgs;
if ($val->OfficeHowGo)
$arList[$type][$cityCode][$code]['Path'] = (string)$val->OfficeHowGo['url'];

if (!array_key_exists($cityCode, $arList['CITY'])) {
$arList['CITY'][$cityCode] = $city;
$arList['CITYFULL'][$cityCode] = (string)$val['CountryName'] . ' ' . (string)$val['RegionName'] . ' ' . $city;
$arList['REGIONS'][$cityCode] = implode(', ', array_filter(array((string)$val['RegionName'], (string)$val['CountryName'])));
}

}

krsort($arList['PVZ']);

return $arList;
} elseif ($request) {
self::toAnswer(array('error' => 'Wrong answer code from server : ' . $request['code']));
return false;
}
}

// Calculation
protected static function calculate($shipment)
{
$headers = self::getHeaders();

$arData = array(
'dateExecute' => $headers['date'],
'version' => '1.0',
'authLogin' => $headers['account'],
'secure' => $headers['secure'],
'senderCityId' => $shipment['cityFromId'],
'receiverCityId' => $shipment['cityToId'],
'tariffId' => ($shipment['tariffId']) ? $shipment['tariffId'] : false
);

if ($shipment['tariffList']) {
foreach ($shipment['tariffList'] as $priority => $tarif) {
$tarif = intval($tarif);
$arData['tariffList'] [] = array(
'priority' => $priority + 1,
'id' => $tarif
);
}
}

if ($shipment['goods']) {
$arData['goods'] = array();
foreach ($shipment['goods'] as $arGood) {
$arData['goods'] [] = array(
'weight' => $arGood['weight'],
'length' => $arGood['length'],
'width' => $arGood['width'],
'height' => $arGood['height']
);
}
}

$result = self::sendToCalculate($arData);

if ($result && $result['code'] == 200) {
if (!is_null(json_decode($result['result']))) {
return json_decode($result['result'], true);
} else {
self::toAnswer(array('error' => 'Wrong server answer'));
return false;
}
} else {
self::toAnswer(array('error' => 'Wrong answer code from server : ' . $result['code']));
return false;
}
}

// API
protected static function sendToSDEK($where, $XML = false, $get = false)
{
$where .= '.php' . (($get) ? "?" . $get : '');
$where = 'https://integration.cdek.ru/' . $where;

if ($XML)
$XML = array('xml_request' => $XML);

return self::client($where, $XML);
}

protected static function getHeaders()
{
$date = date('Y-m-d');
$arHe = array(
'date' => $date
);
if (self::$account && self::$key) {
$arHe = array(
'date' => $date,
'account' => self::$account,
'secure' => md5($date . "&" . self::$key)
);
}
return $arHe;
}

protected static function sendToCalculate($data)
{
$result = self::client(
'http://api.cdek.ru/calculator/calculate_price_by_json_request.php',
array('json' => json_encode($data))
);
return $result;
}

protected static function sendToCity($data)
{
$result = self::client(
'http://api.cdek.ru/city/getListByTerm/json.php?q=' . urlencode($data)
);
return $result;
}

protected static function client($where, $data = false)
{
if (!function_exists('curl_init')) {
self::toAnswer(array('error' => 'No php CURL-library installed on server'));
return false;
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $where);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
if ($data) {
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$result = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return array(
'code' => $code,
'result' => $result
);
}

// LANG
protected static function getLangArray()
{
return array(
'YOURCITY' => 'Ваш город',
'COURIER' => 'Курьер',
'PICKUP' => 'Самовывоз',
'TERM' => 'Срок',
'PRICE' => 'Стоимость',
'DAY' => 'дн.',
'RUB' => 'руб.',
'NODELIV' => 'Нет доставки',
'CITYSEATCH' => 'Поиск города',
'CITYSEARCH' => 'Поиск города',
'ALL' => 'Все',
'PVZ' => 'Пункты выдачи',
'MOSCOW' => 'Москва',
'RUSSIA' => 'Россия',
'COUNTING' => 'Идет расчет',

'NO_AVAIL' => 'Нет доступных способов доставки',
'CHOOSE_TYPE_AVAIL' => 'Выберите способ доставки',
'CHOOSE_OTHER_CITY' => 'Выберите другой населенный пункт',

'EST' => 'есть',

'L_ADDRESS' => 'Адрес пункта выдачи заказов',
'L_TIME' => 'Время работы',
'L_WAY' => 'Как к нам проехать',
'L_CHOOSE' => 'Выбрать',

'H_LIST' => 'Список пунктов выдачи заказов',
'H_PROFILE' => 'Способ доставки',
'H_CASH' => 'Расчет картой',
'H_DRESS' => 'С примеркой',
'H_SUPPORT' => 'Служба поддержки',
);
}

// answering
protected static $answer = false;

protected static function toAnswer($wat)
{
$stucked = array('error');
if (!is_array($wat)) {
$wat = array('info' => $wat);
}
if (!is_array(self::$answer)) {
self::$answer = array();
}
foreach ($wat as $key => $sign) {
if (in_array($key, $stucked)) {
if (!array_key_exists($key, self::$answer)) {
self::$answer[$key] = array();
}
self::$answer[$key] [] = $sign;
} else {
self::$answer[$key] = $sign;
}
}
}

protected static function printAnswer()
{
echo json_encode(self::$answer);
}
}

?>

В нем строки тарифов

ISDEKservice::setTarifPriority(

array(233, 137, 139, 16, 18, 11, 1, 3, 61, 60, 59, 58, 57, 83),

array(234, 136, 138, 15, 17, 62, 63, 5, 10, 12)

);

и когда я пытаюсь передать тарифы с массива который вывожу с базы данных то тарифы уже не передаются

Вот как я делаю на примере:

$tarifs_pickup = $shipment_params['tarifs_pickup']; // массив с тарифами

$tarifspickup = trim($tarifs_pickup, '[]'); // убираю скобки и получаю строку тарифов в виде 233, 137, 139, 16, 18, 11, 1, 3, 61, 60, 59, 58, 57, 83

но когда помещаю переменную то в array их дальше не видно, хотя принтовал саму переменную $tarifspickup точно выводится тарифы в строку...

ISDEKservice::setTarifPriority(

array($tarifspickup),

array(234, 136, 138, 15, 17, 62, 63, 5, 10, 12)

);

Вот именно почему array($tarifspickup) не передается как строка? Что я не так делаю?

vandamme
На сайте с 30.11.2008
Offline
672
#1

а код можно сделать читаемым? не как php код оформляйте, а как цитата, у вас каша $result->geonames***91;0***93;->id,

manaz
На сайте с 13.12.2013
Offline
61
#2
vandamme:
а код можно сделать читаемым? не как php код оформляйте, а как цитата, у вас каша $result->geonames***91;0***93;->id,



<?php
header('Access-Control-Allow-Origin: *');
error_reporting(0);
ISDEKservice::setTarifPriority(
array(233, 137, 139, 16, 18, 11, 1, 3, 61, 60, 59, 58, 57, 83),
array(234, 136, 138, 15, 17, 62, 63, 5, 10, 12)
);

$action = $_REQUEST['isdek_action'];
if (method_exists('ISDEKservice', $action)) {
ISDEKservice::$action($_REQUEST);
}

class ISDEKservice
{
// auth
protected static $account = false; //укажите логин
protected static $key = false; //укажите ключ


protected static $tarifPriority = false;

// Workout
public static function setTarifPriority($arCourier, $arPickup)
{
self::$tarifPriority = array(
'courier' => $arCourier,
'pickup' => $arPickup
);
}

public static function getPVZ()
{
$arPVZ = self::getPVZFile();
if ($arPVZ) {
self::toAnswer(array('pvz' => $arPVZ));
}
self::printAnswer();
}

public static function getLang()
{
self::toAnswer(array('LANG' => self::getLangArray()));
self::printAnswer();
}

public static function calc($data)
{
if (!$data['shipment']['tarifList']) {
$data['shipment']['tariffList'] = self::$tarifPriority[$data['shipment']['type']];
}

if (!$data['shipment']['cityToId']) {
$cityTo = self::sendToCity($data['shipment']['cityTo']);
if ($cityTo && $cityTo['code'] === 200) {
$pretendents = json_decode($cityTo['result']);
if ($pretendents && isset($pretendents->geonames)) {
$data['shipment']['cityToId'] = $pretendents->geonames[0]->id;
}
}
}

if ($data['shipment']['cityToId']) {
$answer = self::calculate($data['shipment']);

if ($answer) {
$answer['type'] = $data['shipment']['type'];
if ($data['shipment']['timestamp']) {
$answer['timestamp'] = $data['shipment']['timestamp'];
}
self::toAnswer($answer);
}
} else {
self::toAnswer(array('error' => 'City to not found'));
}

self::printAnswer();
}

public static function getCity($data)
{
if ($data['city']) {
$result = self::sendToCity($data['city']);
if ($result && $result['code'] == 200) {
$result = json_decode($result['result']);
if (!isset($result->geonames)) {
self::toAnswer(array('error' => 'No cities found'));
} else {
self::toAnswer(array(
'id' => $result->geonames[0]->id,
'city' => $result->geonames[0]->cityName,
'region' => $result->geonames[0]->regionName,
'country' => $result->geonames[0]->countryName
));
}
} else {
self::toAnswer(array('error' => 'Wrong answer code from server : ' . $result['code']));
}
} else {
self::toAnswer(array('error' => 'No city to search given'));
}

self::printAnswer();
}

// PVZ
protected static function getPVZFile()
{

$arPVZ = self::requestPVZ();

return $arPVZ;
}

protected static function requestPVZ()
{
if (!function_exists('simplexml_load_string')) {
self::toAnswer(array('error' => 'No php simplexml-library installed on server'));
return false;
}

$request = self::sendToSDEK('pvzlist', false, 'type=ALL');
$arLL = array();
if ($request && $request['code'] == 200) {
$xml = simplexml_load_string($request['result']);

$arList = array('PVZ' => array(), 'CITY' => array(), 'REGIONS' => array(), 'CITYFULL' => array(), 'COUNTRIES' => array());

foreach ($xml as $key => $val) {

if ($_REQUEST['country'] && $_REQUEST['country'] != 'all' && ((string)$val['CountryName'] != $_REQUEST['country'])) {
continue;
}

$cityCode = (string)$val['CityCode'];
$type = (string)$val['Type'];
$city = (string)$val["City"];
if (strpos($city, '(') !== false)
$city = trim(substr($city, 0, strpos($city, '(')));
if (strpos($city, ',') !== false)
$city = trim(substr($city, 0, strpos($city, ',')));
$code = (string)$val["Code"];

$arList[$type][$cityCode][$code] = array(
'Name' => (string)$val['Name'],
'WorkTime' => (string)$val['WorkTime'],
'Address' => (string)$val['Address'],
'Phone' => (string)$val['Phone'],
'Note' => (string)$val['Note'],
'cX' => (string)$val['coordX'],
'cY' => (string)$val['coordY'],
'Dressing' => (string)$val['IsDressingRoom'],
'Cash' => (string)$val['HaveCashless'],
'Station' => (string)$val['NearestStation'],
'Site' => (string)$val['Site'],
'Metro' => (string)$val['MetroStation'],
'AddressComment' => (string)$val['AddressComment'],
);
if ($val->WeightLimit) {
$arList[$type][$cityCode][$code]['WeightLim'] = array(
'MIN' => (float)$val->WeightLimit['WeightMin'],
'MAX' => (float)$val->WeightLimit['WeightMax']
);
}

$arImgs = array();
if (!is_array($val->OfficeImage)) {
$arToCheck = array(array('url' => (string)$val->OfficeImage['url']));
} else {
$arToCheck = $val->OfficeImage;
}

foreach ($val->OfficeImage as $img) {
if (strstr($_tmpUrl = (string)$img['url'], 'http') === false) {
continue;
}
$arImgs[] = (string)$img['url'];
}

if (count($arImgs = array_filter($arImgs)))
$arList[$type][$cityCode][$code]['Picture'] = $arImgs;
if ($val->OfficeHowGo)
$arList[$type][$cityCode][$code]['Path'] = (string)$val->OfficeHowGo['url'];

if (!array_key_exists($cityCode, $arList['CITY'])) {
$arList['CITY'][$cityCode] = $city;
$arList['CITYFULL'][$cityCode] = (string)$val['CountryName'] . ' ' . (string)$val['RegionName'] . ' ' . $city;
$arList['REGIONS'][$cityCode] = implode(', ', array_filter(array((string)$val['RegionName'], (string)$val['CountryName'])));
}

}

krsort($arList['PVZ']);

return $arList;
} elseif ($request) {
self::toAnswer(array('error' => 'Wrong answer code from server : ' . $request['code']));
return false;
}
}

// Calculation
protected static function calculate($shipment)
{
$headers = self::getHeaders();

$arData = array(
'dateExecute' => $headers['date'],
'version' => '1.0',
'authLogin' => $headers['account'],
'secure' => $headers['secure'],
'senderCityId' => $shipment['cityFromId'],
'receiverCityId' => $shipment['cityToId'],
'tariffId' => ($shipment['tariffId']) ? $shipment['tariffId'] : false
);

if ($shipment['tariffList']) {
foreach ($shipment['tariffList'] as $priority => $tarif) {
$tarif = intval($tarif);
$arData['tariffList'] [] = array(
'priority' => $priority + 1,
'id' => $tarif
);
}
}

if ($shipment['goods']) {
$arData['goods'] = array();
foreach ($shipment['goods'] as $arGood) {
$arData['goods'] [] = array(
'weight' => $arGood['weight'],
'length' => $arGood['length'],
'width' => $arGood['width'],
'height' => $arGood['height']
);
}
}

$result = self::sendToCalculate($arData);

if ($result && $result['code'] == 200) {
if (!is_null(json_decode($result['result']))) {
return json_decode($result['result'], true);
} else {
self::toAnswer(array('error' => 'Wrong server answer'));
return false;
}
} else {
self::toAnswer(array('error' => 'Wrong answer code from server : ' . $result['code']));
return false;
}
}

// API
protected static function sendToSDEK($where, $XML = false, $get = false)
{
$where .= '.php' . (($get) ? "?" . $get : '');
$where = 'https://integration.cdek.ru/' . $where;

if ($XML)
$XML = array('xml_request' => $XML);

return self::client($where, $XML);
}

protected static function getHeaders()
{
$date = date('Y-m-d');
$arHe = array(
'date' => $date
);
if (self::$account && self::$key) {
$arHe = array(
'date' => $date,
'account' => self::$account,
'secure' => md5($date . "&" . self::$key)
);
}
return $arHe;
}

protected static function sendToCalculate($data)
{
$result = self::client(
'http://api.cdek.ru/calculator/calculate_price_by_json_request.php',
array('json' => json_encode($data))
);
return $result;
}

protected static function sendToCity($data)
{
$result = self::client(
'http://api.cdek.ru/city/getListByTerm/json.php?q=' . urlencode($data)
);
return $result;
}

protected static function client($where, $data = false)
{
if (!function_exists('curl_init')) {
self::toAnswer(array('error' => 'No php CURL-library installed on server'));
return false;
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $where);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
if ($data) {
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$result = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return array(
'code' => $code,
'result' => $result
);
}

// LANG
protected static function getLangArray()
{
return array(
'YOURCITY' => 'Ваш город',
'COURIER' => 'Курьер',
'PICKUP' => 'Самовывоз',
'TERM' => 'Срок',
'PRICE' => 'Стоимость',
'DAY' => 'дн.',
'RUB' => 'руб.',
'NODELIV' => 'Нет доставки',
'CITYSEATCH' => 'Поиск города',
'CITYSEARCH' => 'Поиск города',
'ALL' => 'Все',
'PVZ' => 'Пункты выдачи',
'MOSCOW' => 'Москва',
'RUSSIA' => 'Россия',
'COUNTING' => 'Идет расчет',

'NO_AVAIL' => 'Нет доступных способов доставки',
'CHOOSE_TYPE_AVAIL' => 'Выберите способ доставки',
'CHOOSE_OTHER_CITY' => 'Выберите другой населенный пункт',

'EST' => 'есть',

'L_ADDRESS' => 'Адрес пункта выдачи заказов',
'L_TIME' => 'Время работы',
'L_WAY' => 'Как к нам проехать',
'L_CHOOSE' => 'Выбрать',

'H_LIST' => 'Список пунктов выдачи заказов',
'H_PROFILE' => 'Способ доставки',
'H_CASH' => 'Расчет картой',
'H_DRESS' => 'С примеркой',
'H_SUPPORT' => 'Служба поддержки',
);
}

// answering
protected static $answer = false;

protected static function toAnswer($wat)
{
$stucked = array('error');
if (!is_array($wat)) {
$wat = array('info' => $wat);
}
if (!is_array(self::$answer)) {
self::$answer = array();
}
foreach ($wat as $key => $sign) {
if (in_array($key, $stucked)) {
if (!array_key_exists($key, self::$answer)) {
self::$answer[$key] = array();
}
self::$answer[$key] [] = $sign;
} else {
self::$answer[$key] = $sign;
}
}
}

protected static function printAnswer()
{
echo json_encode(self::$answer);
}
}

?>

Понял про #

S
На сайте с 30.09.2016
Offline
469
#3

Как-то смутно воспринимается Ваше изложение. Могу только сказать, что квадратные скобки - это конструкция языка, а не символы строки. И строка просто так не становится массивом. Надо делать преобразование - например, explode().

---------- Добавлено 11.10.2018 в 11:59 ----------

manaz, кончай дурью маяться. Сделать код читаемым - это использовать в редакторе кнопочку # вместо php. За 5 лет пребывания на этом форуме пора уже это усвоить. Убери нафиг эту простыню.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
vandamme
На сайте с 30.11.2008
Offline
672
#4
manaz:
$tarifs_pickup = $shipment_params['tarifs_pickup']; // массив с тарифами

$tarifspickup = trim($tarifs_pickup, '[]'); // убираю скобки и получаю строку тарифов в виде 233, 137, 139, 16, 18, 11, 1, 3, 61, 60, 59, 58, 57, 83

Вот именно почему array($tarifspickup) не передается как строка? Что я не так делаю?

вы как то сами себе противоречите, сначала $tarifs_pickup массив, потом засовываете его в строковую функцию, обычно это приводит к ошибке.

manaz
На сайте с 13.12.2013
Offline
61
#5
vandamme:
вы как то сами себе противоречите, сначала $tarifs_pickup массив, потом засовываете его в строковую функцию, обычно это приводит к ошибке.

Да где же я противоречу себе?

Для тех кто в танке и любит только умничать...

Делаю запрос в базу



$db = JFactory::getDBO ();
$q = 'SELECT shipment_params FROM `#__virtuemart_shipmentmethods` '
. 'WHERE `virtuemart_shipmentmethod_id` = ' . $shipmentmethods_pickup;
$db->setQuery ($q);

$pickup = $db->loadResult();


получил массив параметров в json

перевел с json и получил нужный параметр

это $shipment_params['tarifs_pickup'];

в этом параметре имеются тарифы

$tarifs_pickup = $shipment_params['tarifs_pickup']; // массив с тарифами

делаю принт

print_r($tarifs_pickup);

получаю тарифы в скобках

[234,136,138,15,17,62,63,5,10,12]

убираю скобки

$tarifspickup = trim($tarifs_pickup, '[]'); // убираю скобки и получаю строку тарифов уже в виде 234,136,138,15,17,62,63,5,10,12

и теперь переменную помещаю в

ISDEKservice::setTarifPriority(

array(233, 137, 139, 16, 18, 11, 1, 3, 61, 60, 59, 58, 57, 83),

array($tarifs_pickup)

);

но как уже понял далее они с array($tarifs_pickup) уже не передаются...

Вот vandamme как я вижу любитель по умничать, таких я навидался уже много. Я понимаю что я делаю не так... Для этого и тему создал чтоб понять как правильно делать...

S
На сайте с 30.09.2016
Offline
469
#6
manaz:

делаю принт

print_r($tarifs_pickup);

получаю тарифы в скобках

[234,136,138,15,17,62,63,5,10,12]

Ерунда, print_r так не работает. Разве что эта строка в базе хранится со скобками. Но тогда и echo её покажет, не обязательно print_r

---------- Добавлено 11.10.2018 в 13:20 ----------

manaz:
таких я навидался уже много.
Это означает, что дело в Вас.

---------- Добавлено 11.10.2018 в 13:21 ----------

manaz:
чтоб понять как правильно делать...
Это я Вам уже написал выше.
vandamme
На сайте с 30.11.2008
Offline
672
#7

print_r — Выводит удобочитаемую информацию о переменной на экран.

Послушай старика-старпёра, плохому не научит.

чтобы собрать строку из массива надо использовать http://php.net/manual/ru/function.implode.php

manaz
На сайте с 13.12.2013
Offline
61
#8
vandamme:
print_r — Выводит удобочитаемую информацию о переменной на экран.
Послушай старика-старпёра, плохому не научит.

Дело в том что нужно читать тему а не думать про не понятно что тогда и таких глупых ответов не будет...

Это так на будущее

делаю принт

print_r($tarifs_pickup);

получаю тарифы в скобках

[234,136,138,15,17,62,63,5,10,12]

в моем случае переменная $tarifs_pickup выводит тарифы именно в скобках, ладно с такими умниками только время терять 🤣

vandamme
На сайте с 30.11.2008
Offline
672
#9
S
На сайте с 30.09.2016
Offline
469
#10
vandamme:
manaz, так доходит?

Не теряй время. До таких не дойдёт. Я ему решение написал почти сразу, но он же сюда полаяться пришёл - скучно ему, понимаешь?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий