[英]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
)
.
.
.
)
如何找到包含在整個數組中的相同名稱並組合它們的值? 在上面, Color
和Game
名稱是相同的,所以我需要數組中的顏色和游戲值。 請注意,可能還有其他名稱相似,而不僅僅是顏色和游戲。
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.