In PHP ist die Datenverarbeitung ein Vorgang, den wir häufig ausführen müssen. Insbesondere in der Webentwicklung müssen wir häufig Daten vom Client oder einer externen Schnittstelle abrufen und diese dann verarbeiten oder speichern. In einigen Fällen müssen wir die Array-Kodierung konvertieren, z. B. die UTF-8-Kodierung in die GB2312-Kodierung oder die ISO-8859-1-Kodierung in die UTF-8-Kodierung. In diesem Artikel wird erläutert, wie Sie die Array-Transkodierung in PHP durchführen.
1. Vorbereitungsarbeiten vor der Array-Transkodierung
Bevor Sie die Array-Transkodierung durchführen, müssen Sie zunächst das Kodierungsformat des Arrays klären. Wenn Sie sich über das Codierungsformat des Arrays nicht sicher sind, können Sie zur Beurteilung die in PHP integrierte Funktion mb_detect_encoding()
verwenden. mb_detect_encoding()
来进行判断。
$charset = mb_detect_encoding($array, array('UTF-8', 'GB2312', 'GBK', 'BIG5', 'ISO-8859-1'));
其中,参数$array
是待检测的数组,参数array('UTF-8', 'GB2312', 'GBK', 'BIG5', 'ISO-8859-1')
指定了待检测的编码格式。
如果已知数组的编码格式,例如数组编码为GB2312,那么可以使用PHP内置函数iconv()
进行编码转换。
$array_gb2312 = iconv('UTF-8', 'GB2312', $array);
以上代码将UTF-8编码的数组$array
转换成GB2312编码的数组$array_gb2312
。需要注意的是,iconv()
函数的第一个参数和第二个参数分别指定原编码和目标编码,第三个参数是待转换的数组。
2.将数组转码存入数组
在将数组进行编码转换的过程中,有时候需要将编码转换后的数组的每个元素存入新的数组中。可以使用循环遍历的方式,将每个元素存入新数组中。
$new_array = array(); foreach($array as $value){ $new_value = iconv('UTF-8', 'GB2312', $value); array_push($new_array, $new_value); }
以上代码将UTF-8编码的数组$array
转换成GB2312编码的数组$new_array
。需要注意的是,在循环内部,每个元素都要进行编码转换,然后使用array_push()
函数将新元素加入到新数组中。
如果需要将数组中多维元素进行编码转换,可以使用array_map()
函数和is_array()
函数的结合。
function encode_array($value){ if(is_array($value)){ return array_map('encode_array', $value); } else{ $new_value = iconv('UTF-8', 'GB2312', $value); return $new_value; } } $new_array = array_map('encode_array', $array);
以上代码将UTF-8编码的数组$array
中的多维元素转换成GB2312编码的数组$new_array
。在encode_array()
函数中,首先判断元素是否为数组,如果是,则使用array_map()
再次进行递归转换,否则对单个元素进行编码转换。最后使用array_map()
rrreee
$array
das zu erkennende Array und der Parameter array('UTF-8', 'GB2312', 'GBK ', 'BIG5' , 'ISO-8859-1')
gibt das zu erkennende Codierungsformat an. Wenn das Codierungsformat des Arrays bekannt ist, beispielsweise die Array-Codierung GB2312 ist, können Sie die in PHP integrierte Funktion iconv()
verwenden, um eine Codierungskonvertierung durchzuführen . rrreee
Der obige Code konvertiert das UTF-8-codierte Array$array
in das GB2312-codierte Array $array_gb2312
. Es ist zu beachten, dass der erste und der zweite Parameter der Funktion iconv()
die ursprüngliche Kodierung bzw. die Zielkodierung angeben und der dritte Parameter das zu konvertierende Array ist. #🎜🎜##🎜🎜#2. Transkodieren Sie das Array und speichern Sie es im Array. #🎜🎜##🎜🎜#Beim Codieren und Konvertieren des Arrays ist es manchmal erforderlich, jedes Element des konvertierten Arrays darin zu speichern im neuen Array. Sie können eine Schleife verwenden, um jedes Element in einem neuen Array zu speichern. #🎜🎜#rrreee#🎜🎜#Der obige Code konvertiert das UTF-8-codierte Array $array
in das GB2312-codierte Array $new_array
. Es ist zu beachten, dass innerhalb der Schleife jedes Element codiert und dann mit der Funktion array_push()
zum neuen Array hinzugefügt werden muss. #🎜🎜##🎜🎜#Wenn Sie mehrdimensionale Elemente im Array konvertieren müssen, können Sie die Kombination aus der Funktion array_map()
und dem Code is_array()
verwenden > Funktion. #🎜🎜#rrreee#🎜🎜#Der obige Code konvertiert die mehrdimensionalen Elemente im UTF-8-codierten Array $array
in das GB2312-codierte Array $new_array
. Bestimmen Sie in der Funktion encode_array()
zunächst, ob das Element ein Array ist. Wenn ja, führen Sie mit array_map()
erneut eine rekursive Konvertierung durch, andernfalls führen Sie eine Codierungskonvertierung für ein einzelnes Array durch Element. Verwenden Sie abschließend array_map()
, um das ursprüngliche Array zu durchlaufen und alle Konvertierungen des Arrays abzuschließen. #🎜🎜##🎜🎜#3. Zusammenfassung #🎜🎜##🎜🎜# In diesem Artikel werden die Vorgänge der Array-Kodierungskonvertierung in PHP vorgestellt, einschließlich Vorgängen wie dem Erkennen des Array-Kodierungsformats, der Transkodierung von Arrays und deren Speicherung in Arrays. Während des Vorgangs müssen Sie auf das einheitliche Codierungsformat und die korrekte Verwendung der Schleifendurchquerung achten. Nur durch die korrekte Verwendung der Array-Transkodierungsmethode können Probleme wie verstümmelte Zeichen und nicht übereinstimmende Zeichensätze vermieden werden. #🎜🎜#Das obige ist der detaillierte Inhalt vonPHP-Array-Transkodierung im Array gespeichert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!