Не получается вывести массив так как в примере
Есть массив:
$deliveryMethodsArray = [
[
'code' => 'dhl',
'customer_costs' => [
22 => '1.000',
11 => '3.000',
]
],
[
'code' => 'fedex',
'customer_costs' => [
22 => '4.000',
11 => '6.000',
]
]];
И нужно создать для нее функцию сортировки. Вот вывод
$result = sortfunc($deliveryMethodsArray)
var_dump($result);
array(2)
{
[22]=>
array(2) {
["dhl"]=>
string(5) "1.000"
["fedex"]=>
string(5) "4.000"
}
[11]=>
array(2) {
["dhl"]=>
string(5) "3.000"
["fedex"]=>
string(5) "6.000"
}
}
Вот что у меня в данный момент поучилось но не могу вывести как в примере
Вот код:
function sortFunc($deliveryMethodsArray)
{
foreach ($deliveryMethodsArray as ["customer_costs" => $names, 'code' => $codes]) {
foreach ($deliveryMethodsArray as ["customer_costs" => $name, 'code' => $code]) {
foreach ($names as $keys => $b) {
foreach ($name as $key => $a) {
$value [$keys] = [$codes => $b] + [$code => $a];
}
}
}
return $value;
}
return $deliveryMethodsArray;
}
А вот что выводит:
array(2) {
[22]=>
array(2) {
["dhl"]=>
string(5) "1.000"
["fedex"]=>
string(5) "6.000"
}
[11]=>
array(2) {
["dhl"]=>
string(5) "3.000"
["fedex"]=>
string(5) "6.000"
}
}
Не знаю что дальше делать Если есть варианты или решение то можете подсказать?
Ответы (1 шт):
Автор решения: Александр Мирний
→ Ссылка
Я думаю у меня получилось но не совсем правильно. Если вы знаете как решить эту задачу иным способом то подскажите как ее решить по другому)
```
function sortFunc($deliveryMethodsArray)
{
foreach ($deliveryMethodsArray as ["customer_costs" => $names, 'code' => $codes]) {
foreach ($deliveryMethodsArray as ["customer_costs" => $name, 'code' => $code]) {
foreach ($names as $keys => $b) {
foreach ($name as $key => $a) {
if ($b == '1.000') {
$value [$key] = [$codes => $b]+[$code => $a];
}
else{
$value [$keys] = [$code => $a];
}
}
if ($b == '3.000') {
$value [$keys] = [$codes => $b] + [$code => $a];
}
else{
$value [$key] = [$code => $a];
}
}
}
return $value;
}
return $deliveryMethodsArray;
}
```
```
$result = sortFunc($deliveryMethodsArray);
echo "<pre>";
var_dump($result);
echo "</pre>";
```