簡體   English   中英

如何在PhP中將多維數組轉換為關聯數組?

[英]How to convert Multidimensional array to Associative array in PhP?

我需要將多維數組轉換為關聯數組。

請幫我轉換數組。 需要刪除鍵“sub_code”和“credits”,並使第一個字符串為“key”,第二個字符串為“value”。 我嘗試了很多方法,但都失敗了。

需要轉換以下數組。

array(9) { 
    [0]=> array(2) 
        {   
            ["sub_code"]    => string(6) "HS6151" 
            ["credits"]     => string(1) "4" 
        } 
    [1]=> array(2) 
        {   
            ["sub_code"]    => string(6) "MA6151" 
            ["credits"]     => string(1) "4" 
        } 
    [2]=> array(2) 
        {   
            ["sub_code"]    => string(6) "PH6151" 
            ["credits"]     => string(1) "3" 
        } 
    [3]=> array(2) 
        {   
            ["sub_code"]    => string(6) "CY6151" 
            ["credits"]     => string(1) "3" 
        } 
    [4]=> array(2) 
        {   
            ["sub_code"]    => string(6) "GE6151" 
            ["credits"]     => string(1) "3" 
        } 
    [5]=> array(2) 
        {   
            ["sub_code"]    => string(6) "GE6152" 
            ["credits"]     => string(1) "4" 
        } 
    [6]=> array(2) 
        {   
            ["sub_code"]    => string(6) "GE6161" 
            ["credits"]     => string(1) "2" 
        } 
    [7]=> array(2) 
        {   
            ["sub_code"]    => string(6) "GE6162" 
            ["credits"]     => string(1) "2" 
        } 
    [8]=> array(2) 
        {   
            ["sub_code"]    => string(6) "GE6163" 
            ["credits"]     => string(1) "1" 
        } 
}

像下面。

array(9) { 
    ["HS6151"]  =>  string(1) "4" 
    ["MA6151"]  =>  string(1) "4" 
    ["PH6151"]  =>  string(1) "3" 
    ["CY6151"]  =>  string(1) "3" 
    ["GE6151"]  =>  string(1) "3" 
    ["GE6152"]  =>  string(1) "4" 
    ["GE6161"]  =>  string(1) "2" 
    ["GE6162"]  =>  string(1) "2" 
    ["GE6163"]  =>  string(1) "1" 
}

您可以像這樣使用array_column

$array = [
    [
        'sub_code' => 'HS6151',
        'credits' => '4',
    ],
    [
        'sub_code' => 'MA6151',
        'credits' => '4',
    ],
];

$result = array_column($array, 'credits', 'sub_code');
print_r($result);

結果是:

Array
(
    [HS6151] => 4
    [MA6151] => 4
)

聽起來很直接:

<?php
$input = [
    [
        "sub_code" => "HS6151", 
        "credits"  => "4" 
    ], [
        "sub_code" => "MA6151",
        "credits"  => "4" 
    ], [
        "sub_code" => "PH6151",
        "credits"  => "3" 
    ], [
        "sub_code" => "CY6151", 
        "credits"  => "3" 
    ], [
        "sub_code" => "GE6151", 
        "credits"  => "3" 
    ], [
        "sub_code" => "GE6152", 
        "credits"  => "4" 
    ], [
        "sub_code" => "GE6161", 
        "credits"  => "2" 
    ], [
        "sub_code" => "GE6162", 
        "credits"  => "2" 
    ], [
        "sub_code" => "GE6163", 
        "credits"  => "1" 
    ]
];

$output = [];
array_walk($input, function($entry) use (&$output) {
    $output[$entry["sub_code"]] = $entry["credits"];
});

print_r($output);

輸出顯然是:

Array
(
    [HS6151] => 4
    [MA6151] => 4
    [PH6151] => 3
    [CY6151] => 3
    [GE6151] => 3
    [GE6152] => 4
    [GE6161] => 2
    [GE6162] => 2
    [GE6163] => 1
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM