删除一个级别的dept数组并将值与其父键关联

时间:2016-10-19 16:30:54

标签: php arrays

为此疯狂,请问我该怎么转这个阵列:

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] 相同关键,谢谢。

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:1)

如果您确定它将始终是您阵列中的一个元素,或者您只想选择第一个元素,那么您可以使用以下内容:

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

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

print_r($data);

将输出如下内容:

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