我有这样的数组
$abc = array(
array(0=>354,1=>2),
array(0=>358,1=>1),
array(0=>344,1=>1),
array(0=>374,1=>5),
array(0=>364,1=>1)
);
我希望将键值0重命名为product_id,将1重命名为qty。所以最后我想要那样的数组
$abc = array(
array('product_id'=>354,'qty'=>2),
array('product_id'=>358,'qty'=>1),
array('product_id'=>344,'qty'=>1),
array('product_id'=>374,'qty'=>5),
array('product_id'=>364,'qty'=>1)
);
我该怎么做?
答案 0 :(得分:3)
您可以将它们转移到另一个,然后使用必要的密钥并使用array_combine()
循环它们:
$abc = array(
array(0=>354,1=>2),
array(0=>358,1=>1),
array(0=>344,1=>1),
array(0=>374,1=>5),
array(0=>364,1=>1)
);
$new_keys = array('product_id', 'qty');
$new_abc = array();
foreach($abc as $val) {
$new_abc[] = array_combine($new_keys, $val);
}
echo '<pre>';
print_r($new_abc);
应该导致:
Array
(
[0] => Array
(
[product_id] => 354
[qty] => 2
)
[1] => Array
(
[product_id] => 358
[qty] => 1
)
.. and so on
或者,您也可以使用array_map()
来实现此目的:
$new_keys = array('product_id', 'qty');
$new_abc = array_map(function($piece) use ($new_keys){
return array_combine($new_keys, $piece);
}, $abc);
答案 1 :(得分:1)
试试这个
foreach($abc as &$element) {
$element['product_id']=$element[0];
unset($element[0]);
$element['qty']=$element[1];
unset($element[1]);
}
答案 2 :(得分:1)
你可以在php中使用array_map()
并试试这个
$abc = array(
array(0=>354,1=>2),
array(0=>358,1=>1),
array(0=>344,1=>1),
array(0=>374,1=>5),
array(0=>364,1=>1)
);
$newArr = array_map(function($abc) {
return array(
'product_id' => $abc['0'],
'qty' => $abc['1']
);
}, $abc);
print_r($newArr);
Check this了解更多
答案 3 :(得分:0)
$arr[$newkey] = $arr[$oldkey];
unset($arr[$oldkey]);