[英]Change array key and group key with the same value
我有一個數組看起來像這樣:
Array
(
[0] => Array
(
[variant_name] => Green
[product_id] => 2
[variant_id] => 67
[amount] => 1000
)
[1] => Array
(
[variant_name] => Red
[product_id] => 2
[variant_id] => 68
[amount] => 0
)
)
預期是這樣的:
Array (
[2] => array (
[67] => array (
[variant_id] => Green
[amount] => 1000
(
[68] => array (
[variant_id] => Red
[amount] => 0
(
)
按product_id分組,然后按Variant_id分組為數組。 我怎樣才能做到這一點。 非常感謝。
foreach($values as $product)
{
$newValues[$product["product_id"]][$product["variant_id"]]=
array(
'product_name'=>$product["variant_name"],
'amount'=>$product["amount"]
);
}
輸出量
Array
(
[2] => Array
(
[67] => Array
(
[product_name] => Green
[amount] => 1000
)
[68] => Array
(
[product_name] => Red
[amount] => 0
)
)
)
注意您在原始數組中有variant_name
,並將其用作輸出中的variant_id
。 您可以在此代碼中使用索引。 我只是用了似乎匹配的東西。
一個簡單的foreach循環就足夠了。 當然,您需要將它們構建在新數組中。 考慮以下示例:(在您期望的示例中,我認為您是在指variant_name
)
$values = array( array( 'variant_name' => 'Green', 'product_id' => 2, 'variant_id' => 67, 'amount' => 1000, ), array( 'variant_name' => 'Red', 'product_id' => 2, 'variant_id' => 68, 'amount' => 0, ), );
$new_values = array();
foreach($values as $key => $value) {
$new_values[$value['product_id']][$value['variant_id']] = array(
'variant_name' => $value['variant_name'],
'amount' => $value['amount'],
);
}
echo '<pre>';
print_r($new_values);
echo '</pre>';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.