Heim  >  Artikel  >  Backend-Entwicklung  >  Algorithmus – Wie füge ich doppelte Elemente eines Arrays in einem neuen Array in PHP zusammen?

Algorithmus – Wie füge ich doppelte Elemente eines Arrays in einem neuen Array in PHP zusammen?

WBOY
WBOYOriginal
2016-12-01 00:56:201508Durchsuche

Angenommen, das aktuelle Array ist
array(
0=>array('key1'=>'value1' , 'key2'=>'value2'),
1=>array('key1'=>'value1' , 'key2'=>'value3'),
2=>array('key1'=> ' value2' , 'key2'=>'value4'),
...
999=>array('key1'=>'value2' , 'key2'=>'value5')
)
So führen Sie die Werte von Schlüssel2 in einem neuen Array zusammen, wenn die Werte von Schlüssel1 in diesem Array gleich sind. Bitte schreiben Sie eine Methode, um das ursprüngliche Array in das folgende Array zu konvertieren:
array(
0=>array('value1'=>array('value2','value3')),
1 => array('value2'=>array('value4','value5')),
...
)

Antwortinhalt:

Angenommen, das aktuelle Array ist
array(
0=>array('key1'=>'value1' , 'key2'=>'value2'),
1=>array('key1'=>'value1' , 'key2'=>'value3'),
2=>array('key1'=> ' value2' , 'key2'=>'value4'),
...
999=>array('key1'=>'value2' , 'key2'=>'value5')
)
So führen Sie die Werte von Schlüssel2 in einem neuen Array zusammen, wenn die Werte von Schlüssel1 in diesem Array gleich sind. Bitte schreiben Sie eine Methode, um das ursprüngliche Array in das folgende Array zu konvertieren:
array(
0=>array('value1'=>array('value2','value3')),
1 => array('value2'=>array('value4','value5')),
...
)

Fragetitel, ist er unabhängig davon, ob key1 wiederholt wird oder nicht? Hier erfahren Sie, wie es geht

<code>$arr = array(
    0=>array('key1'=>'value1' , 'key2'=>'value2'),
    1=>array('key1'=>'value1' , 'key2'=>'value3'),
    2=>array('key1'=>'value2' , 'key2'=>'value4'),
    999=>array('key1'=>'value2' , 'key2'=>'value5')
);

$result = array();
foreach ($arr as $data) {
    isset($result[$data['key1']]) || $result[$data['key1']] = array();
    $result[$data['key1']][] = $data['key2'];
}
print_r($result);

//输出如下
Array
(
    [value1] => Array
        (
            [0] => value2
            [1] => value3
        )

    [value2] => Array
        (
            [0] => value4
            [1] => value5
        )
        
)</code>

Ich denke, es wäre viel besser, wenn Sie die Array-Organisationsform ändern würden.
Wenn Sie es nicht ändern können, wird es natürlich sehr schwierig sein.
Verwenden Sie dazu beispielsweise Traversal.

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