⊗ppSpOtAC 83 of 83 menu

Optimierung der Array-Konvertierung in PHP

Es ist nicht immer notwendig, einen String in ein Array aufzuteilen, um etwas mit ihm zu tun.

Schauen wir uns ein Beispiel an. Im folgenden Beispiel prüft der Code-Autor, ob der String die Ziffer 3 enthält:

<?php $str = '12345'; $arr = explode('', $str); // in Array aufteilen if (in_array(3, $arr)) { echo 'есть'; } else { echo 'нет'; } ?>

Der Autor ist super - er verwendet die eingebauten Funktionen von PHP, anstatt eigene Krücken zu schreiben.

Aber der Code ist trotzdem nicht optimal: Hier besteht keine Notwendigkeit, den String in ein Array aufzuteilen, denn es gibt die fertige Funktion strpos, die die Suche in einem String durchführt:

<?php $str = '12345'; if (strpos(str, 3) !== false) { echo 'есть'; } else { echo 'нет'; } ?>

Warum ist das Aufteilen in ein Array hier schlecht? Weil, erstens, das Aufteilen in ein Array Prozessorressourcen kostet, und zweitens, das resultierende Array Speicherplatz im Arbeitsspeicher belegen wird (und zwar mehr, als der Platz, den der ursprüngliche String belegt).

Die Moral: Teilen Sie einen String nicht in ein Array auf, wenn es einen Weg gibt, dies nicht zu tun.

Im folgenden Code dreht ein Programmierer die Zeichen eines Strings in umgekehrter Reihenfolge um. Optimieren Sie die Lösung dieses Programmierers:

<?php $str = '123345'; $rev = implode('', array_reverse(explode('', $str))); echo $rev; // gibt '54321' aus ?>

Im folgenden Code sucht jemand nach der Anzahl der Wörter in einem Text. Optimieren Sie die Lösung dieses Programmierers:

<?php $str = 'aaa bbb ccc'; // ein langer String echo count(explode(' ', $str)); ?>
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen