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

WBOY
Freigeben: 2023-03-01 20:42:02
Original
1507 Leute haben es durchsucht

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>
Nach dem Login kopieren

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.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!