Heim >Backend-Entwicklung >PHP-Problem >Konvertieren Sie den PHP-String in ein Array-Objekt-Array-Objekt-Array-Objekt-Array
In der PHP-Entwicklung ist es oft notwendig, mit Strings zu arbeiten, und die Konvertierung von Strings in Arrays ist eine der häufigsten Anforderungen. Gleichzeitig sind Array-Objekte auch häufig in der Entwicklung verwendete Datentypen. Daher ist die Konvertierung von PHP-Strings in Array-Objekte, Array-Objekte, Array-Objekte und Arrays zu einer der Fähigkeiten geworden, die PHP-Entwickler beherrschen müssen.
In diesem Artikel wird ausführlich beschrieben, wie PHP-Strings in Arrays konvertiert werden, wie Arrays in Objekte konvertiert werden und schließlich ein Array von Array-Objekten erstellt wird, und es wird vorgestellt, wie grundlegende Operationen an diesem Array von Array-Objekten ausgeführt werden.
PHP verfügt über eine eingebaute „explosive()“-Funktion, um einen String in ein Array umzuwandeln. Die Funktion „explosiv()“ teilt eine Zeichenfolge gemäß dem angegebenen Trennzeichen auf und gibt ein Array zurück, das die aufgeteilten Teilzeichenfolgen enthält.
Zum Beispiel konvertiert der folgende Code eine durch "," getrennte Zeichenfolge in ein Array:
$str = "apple,banana,orange"; $arr = explode(",", $str); print_r($arr);
Ausgabe:
Array ( [0] => apple [1] => banana [2] => orange )
Wenn kein Trennzeichen angegeben ist, wird standardmäßig das Leerzeichen verwendet.
In PHP können Sie die Typumwandlungssyntax verwenden, um ein Array in ein Objekt umzuwandeln. Bei diesem Vorgang wird jedes Element des Arrays als Attribut des Objekts festgelegt. Der Attributname ist der Array-Schlüssel und der Attributwert ist der Wert, der dem entsprechenden Schlüssel des Arrays entspricht.
Der folgende Code konvertiert beispielsweise ein Array in das entsprechende Objekt:
$arr = array('name' => 'Tom', 'age' => 18, 'gender' => 'male'); $obj = (object)$arr; echo $obj->name; //输出Tom echo $obj->age; //输出18 echo $obj->gender; //输出male
Es ist zu beachten, dass nach der Konvertierung des Arrays in ein Objekt bei den Attributnamen im Objekt die Groß-/Kleinschreibung beachtet wird.
Indem Sie das Objekt in ein Array zwingen, können Sie ein Objekt in ein Array konvertieren. Dieser Prozess konvertiert alle Attribute des Objekts in Schlüssel-Wert-Paare im Array. Der Attributname ist der Schlüssel des Arrays und der Attributwert ist der Wert, der dem entsprechenden Schlüssel des Arrays entspricht.
Der folgende Code konvertiert beispielsweise ein Objekt in das entsprechende Array:
class Person { public $name; public $age; public $gender; } $person = new Person(); $person->name = 'Tom'; $person->age = 18; $person->gender = 'male'; $arr = (array)$person; print_r($arr);
Ausgabe:
Array ( [name] => Tom [age] => 18 [gender] => male )
Es ist zu beachten, dass nach der Konvertierung des Objekts in ein Array die Schlüsselnamen im Array mit denen des Objekts identisch sind Eigenschaftsnamen und das Attributzugriffssymbol ($) steht vor dem Schlüsselnamen.
Nachdem Sie die Zeichenfolge in ein Array konvertiert haben, verwenden Sie die erzwungene Typkonvertierung, um das Array in ein Objekt umzuwandeln, und bilden Sie dann ein Array aus Array-Objekten.
$str = "name:Tom,age:18,gender:male;name:Lucy,age:21,gender:female;"; $data_arr = explode(";",$str); function arrayToObject($arr){ if(gettype($arr) != 'array'){ return; } foreach ($arr as $key => $value) { if(is_array($value)){ $arr[$key] = arrayToObject($value); } } return (object) $arr; } function objectToArray($obj){ $obj = (array) $obj; foreach ($obj as $k => $v){ if(gettype($v) == 'resource') return; if(gettype($v) == 'object' || gettype($v) == 'array') $obj[$k] = (array) objectToArray($v); } return $obj; } $arr = array(); foreach ($data_arr as $data_item) { $data_item_arr = explode(",",$data_item); $data_obj = new stdClass(); foreach ($data_item_arr as $item) { $item_arr = explode(":",$item); if(count($item_arr) == 2){ $key = $item_arr[0]; $value = $item_arr[1]; $data_obj->$key = $value; } } $data_arr[] = $data_obj; } $arr_obj = arrayToObject($arr); print_r($arr_obj); $arr2 = objectToArray($arr_obj); print_r($arr2);
Ausgabe:
Array ( [0] => stdClass Object ( [name] => Tom [age] => 18 [gender] => male ) [1] => stdClass Object ( [name] => Lucy [age] => 21 [gender] => female ) ) Array ( [0] => Array ( [name] => Tom [age] => 18 [gender] => male ) [1] => Array ( [name] => Lucy [age] => 21 [gender] => female ) )
Nachdem wir das Array von Array-Objekten erhalten haben, können wir allgemeine Operationen daran ausführen, wie z. B. Hinzufügen, Löschen, Filtern usw.
Element hinzufügen:
$data_obj1 = new stdClass(); $data_obj2 = new stdClass(); $data_obj1->name = 'Tom'; $data_obj2->name = 'Lucy'; $data_arr[] = $data_obj1; $data_arr[] = $data_obj2;
Element löschen:
unset($data_arr[0]);
Element filtern:
$result_arr = array_filter($data_arr,function ($item){ return $item->age > 20; }); print_r($result_arr);
Mit dem obigen Vorgang werden die Informationen von Personen abgerufen, die älter als 20 Jahre sind.
Durch die Einleitung dieses Artikels sollten Sie bereits wissen, wie Sie PHP-Strings in Array-Objekte, Array-Objekte und Array-Objekte konvertieren und grundlegende Operationen daran ausführen können. Diese Fähigkeit ist in der PHP-Entwicklung sehr nützlich. Ich hoffe, dass jeder sie ernsthaft studieren und auf die tatsächliche Entwicklung anwenden kann.
Das obige ist der detaillierte Inhalt vonKonvertieren Sie den PHP-String in ein Array-Objekt-Array-Objekt-Array-Objekt-Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!