Удалить массив отдела одного уровня и связать значение с его родительским ключом

#php #arrays

#php #массивы

Вопрос:

Сходя с ума от этого, пожалуйста, как я могу превратить этот массив:

 Array
(
    [par] => XXX
    [price_item] => 100
    [value] => 130
    [qnt] => Array
        (
            [130] => 99
        )

)
  

в это:

 Array
(
    [par] => XXX
    [price_item] => 100
    [value] => 130
    [qnt] => 99

)
  

В цикле foreach?

Примечания: Я не могу указать ключ [130], так как это может быть другое число, но структура уровней массива всегда одинакова, как и ключ [qnt], спасибо.

Комментарии:

1. Ищите array_flatten . codegists.com/snippet/php/array_flattenphp_rollinsb1010_php

Ответ №1:

Вам просто нужно перезаписать свой массив, получив первый элемент из данного массива:

 //$yourArray
if(is_array($yourArray['qnt'])){//check if array, better safe
    $values = array_values($yourArray['qnt']); //get values as array
    $yourArray['qnt'] = $values[0];//get first and rewrite yout initial array
}
  

Ответ №2:

Если вы уверены, что это всегда будет один элемент в вашем массиве, или вы просто хотите выбрать первый, вы можете использовать что-то вроде следующего:

 $data['par'] = 'XXX';
$data['price_item'] = 100;
$data['value'] = 130;
$data['qnt'] = ['130'=>99];

$data['qnt'] = (is_array($data['qnt']) amp;amp; !empty($data['qnt'])) ? array_pop($data['qnt']) : $data['qnt'];

print_r($data);
  

Который будет выводиться во что-то вроде:

 Array ( [par] => XXX [price_item] => 100 [value] => 130 [qnt] => 99 )