簡體   English   中英

如何在數組數組中找到相同的名稱並在 PHP 中組合它們的值?

[英]How to find same name in array of array and combine their values in PHP?

我有這種類型的數組結構。

Array
(
    [0] => Array
        (
            [name] => Name
            [value] => Ram
        )

    [1] => Array
        (
            [name] => Gender
            [value] => Male
        )

    [2] => Array
        (
            [name] => Age
            [value] => 25
        )

    [3] => Array
        (
            [name] => Color
            [value] => Red
        )

    [4] => Array
        (
            [name] => Color
            [value] => Yellow
        )

    [5] => Array
        (
            [name] => Game
            [value] => Cricket
        )

    [6] => Array
        (
            [name] => Game
            [value] => Football
        )

    .
    .
    .
)

如何找到包含在整個數組中的相同名稱並組合它們的值? 在上面, ColorGame名稱是相同的,所以我需要數組中的顏色和游戲值。 請注意,可能還有其他名稱相似,而不僅僅是顏色和游戲。

Array
(
    [0] => Array
        (
            [name] => Name
            [value] => Ram
        )

    [1] => Array
        (
            [name] => Gender
            [value] => Male
        )

    [2] => Array
        (
            [name] => Age
            [value] => 25
        )

    [3] => Array
        (
            [name] => Color
            [value] => array( 'Red', 'Yellow' )
        )

    [4] => Array
        (
            [name] => Game
            [value] => array( 'Cricket', 'Football' )
        )
    .
    .
    .
)

試試下面的代碼。 並檢查這是否對您有幫助。 注意:當您在這里提出問題時,請提供您目前所做的代碼以供將來參考。 在這個問題中,您似乎沒有嘗試解決它。

 <?php // example code $newarray = [ [ "name" => "Name", "value" => "Ram" ], [ "name" => "Gender", "value" => "Male" ], [ "name" => "Age", "value" => 25 ], [ "name" => "Color", "value" => "Red" ], [ "name" => "Color", "value" => "Yellow" ], ]; //make an array of combined values using value of name as key of that array $keyArray = []; foreach($newarray as $k=>$v) { if(array_key_exists($v['name'],$keyArray)) { $valueArray = []; if(is_array($keyArray[$v['name']])) { $valueArray = $keyArray[$v['name']]; $valueArray[] = $v['value']; $keyArray[$v['name']] = $valueArray; } else { $valueArray[] = $keyArray[$v['name']]; $valueArray[] = $v['value']; $keyArray[$v['name']] = $valueArray; } } else { $keyArray[$v['name']] = $v['value']; } } //now loop through the key values and make key as name and value as value and push into a wrapper array $finalArray = []; foreach ($keyArray as $k=>$v) { $finalArray[] = [ "name"=>$k, "value"=>$v ]; } print_r($finalArray);

暫無
暫無

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

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