将数组特定值分隔成另一个数组的正确方法

时间:2014-05-09 19:33:05

标签: php arrays

我的申请中有以下array

array (
    [item_name_1] => GTA V
    [item_quantity_1] => 4
    [item_price_1] => 5990
    [item_name_2] => Watch_Dogs
    [item_quantity_2] => 1
    [item_price_2] => 5990
)

我想把这个array分成两部分:

array (
    [item_name_1] => GTA V
    [item_quantity_1] => 4
    [item_price_1] => 5990
)

array (
    [item_name_2] => Watch_Dogs
    [item_quantity_2] => 1
    [item_price_2] => 5990
)

如果你没有意识到,我想将后缀为1和2的项目 - 以及相继 - 分开到不同的矩阵,我真的看不到执行此操作的最佳方法。也许正则表达式?

我已尝试使用explode()implode(),但没有成功 - 我没有足够的创造力来探索他们的最佳状态。

1 个答案:

答案 0 :(得分:1)

<?php
$src = array (
    'item_name_1' => 'GTA V',
    'item_quantity_1' => 4,
    'item_price_1' => 5990,
    'item_name_2' => 'Watch_Dogs',
    'item_quantity_2' => 1,
    'item_price_2' => 5990,
);

$dest = array();

foreach($src as $k => $v) {
  $sfx = preg_replace('/.*?_([0-9]+)$/', '$1',$k);
  $dest[$sfx][$k] = $v;
}

print_r($dest);