Heim  >  Artikel  >  Backend-Entwicklung  >  So kombinieren Sie Werte mit demselben Schlüssel in einem Array in PHP zu einem

So kombinieren Sie Werte mit demselben Schlüssel in einem Array in PHP zu einem

王林
王林Original
2023-05-05 20:37:061887Durchsuche

Bei der PHP-Programmierung ist es oft notwendig, mit demselben Schlüssel im Array zu arbeiten. Wenn es Elemente mit demselben Schlüssel in einem Array gibt, wie kann man sie zu einem zusammenführen? Im Folgenden finden Sie eine kurze Einführung in einige Methoden zur Verarbeitung von Arrays in PHP, um Ihnen bei der Lösung dieses Problems zu helfen.

1. Verwenden Sie die Funktion array_merge_recursive()

PHPs integrierte Funktion array_merge_recursive() kann zwei oder mehr Arrays zu einem Array zusammenführen. Wenn derselbe Schlüssel in einem der Arrays vorkommt, werden die verschiedenen Unterelemente in einem Array zusammengeführt und das Endergebnis ist ein mehrdimensionales Array.

Der Beispielcode lautet wie folgt:

$arr1 = array("name"=>"张三","age"=>18,"hobbies"=>array("football","basketball"));
$arr2 = array("name"=>"李四","age"=>20,"hobbies"=>array("swimming","shopping"));

$result = array_merge_recursive($arr1,$arr2);

Das Ergebnis nach der Ausführung ist:

array(
    "name"=>array("张三","李四"),
    "age"=>array(18,20),
    "hobbies"=>array(
        array("football","basketball"),
        array("swimming","shopping")
    )
)

Wie Sie sehen können, werden die Werte desselben Schlüssels („Name“, „Alter“, „Hobbys“) zusammengeführt und zu einem mehrdimensionalen Array werden.

2. Schleifendurchquerung verwenden

Zusätzlich zur Verwendung der Funktion array_merge_recursive() können Sie auch Schleifendurchquerung verwenden, um Elemente mit demselben Schlüssel im Array zu einem zusammenzuführen.

Der Beispielcode lautet wie folgt:

$arr = array(
    "name"=>"张三",
    "age"=>18,
    "grade"=>"一年级",
    "major"=>"计算机科学",
    "score"=>array("英语"=>80,"数学"=>90),
    "address"=>array("province"=>"广东省","city"=>"深圳市")
);

$newArr = array();

foreach($arr as $key=>$value){
    if(array_key_exists($key,$newArr)){
        if(!is_array($newArr[$key])){
            $tmp = $newArr[$key];
            $newArr[$key] = array();
            array_push($newArr[$key],$tmp);
        }
        array_push($newArr[$key],$value);
    }else{
        $newArr[$key] = $value;
    }
}

Das Ergebnis nach der Ausführung ist:

array(
    "name"=>"张三",
    "age"=>18,
    "grade"=>"一年级",
    "major"=>"计算机科学",
    "score"=>array("英语"=>80,"数学"=>90),
    "address"=>array("province"=>"广东省","city"=>"深圳市")
)

Wie Sie sehen können, gibt es im ursprünglichen Array keine Elemente mit demselben Schlüssel, sodass $newArr genau mit dem ursprünglichen Array identisch ist .

3. Verwenden Sie die Funktion array_reduce()

Zusätzlich zu den beiden oben genannten Methoden können Sie auch die mit PHP gelieferte Funktion array_reduce() verwenden, um Elemente mit demselben Schlüssel im Array zu einem zusammenzuführen.

Der Beispielcode lautet wie folgt:

$arr = array(
    "name"=>"张三",
    "age"=>18,
    "grade"=>"一年级",
    "major"=>"计算机科学",
    "score"=>array("英语"=>80,"数学"=>90),
    "address"=>array("province"=>"广东省","city"=>"深圳市")
);

$newArr = array_reduce(array_keys($arr),function($result,$key) use ($arr){
    if(array_key_exists($key,$result)){
        if(!is_array($result[$key])){
            $tmp = $result[$key];
            $result[$key] = array();
            array_push($result[$key],$tmp);
        }
        array_push($result[$key],$arr[$key]);
    }else{
        $result[$key] = $arr[$key];
    }
    return $result;
},array());

print_r($newArr);

Das Ergebnis nach der Ausführung ist das gleiche wie das Ergebnis der obigen Methode 2.

Zusammenfassend lässt sich sagen, dass es in PHP viele Möglichkeiten gibt, Elemente mit demselben Schlüssel in einem Array zu verarbeiten, und jede Methode hat ihre anwendbaren Situationen. Sie können entsprechend der tatsächlichen Situation die am besten geeignete Methode wählen, um damit umzugehen.

Das obige ist der detaillierte Inhalt vonSo kombinieren Sie Werte mit demselben Schlüssel in einem Array in PHP zu einem. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn