Tôi rất mới với PHP và tôi cần sự giúp đỡ của bạn! Tôi cần viết phụ trợ cho ứng dụng của mình nhận bài đăng JSON và ghi dữ liệu vào tệp JSON. Và tôi bị mắc kẹt với vòng lặp qua mảng.
$postData = file_get_contents["php://input"];
$request = json_decode[$postData];
var_damp[$request]
Hiển thị mảng:
array[2] {
[0]=>
object[stdClass]#1 [8] {
["name"]=>
string[11] "Alex Jordan"
["email"]=>
string[14] ""
["phone"]=>
int[123456789]
["street"]=>
string[12] "street, str."
["city"]=>
string[7] "Chicago"
["state"]=>
string[7] "Chicago"
["zip"]=>
string[5] "07202"
["$$hashKey"]=>
string[8] "object:3"
}
[1]=>
object[stdClass]#2 [8] {
["name"]=>
string[15] "Michael Jonhson"
["email"]=>
string[17] ""
["phone"]=>
float[11987654321]
["street"]=>
string[12] "street, str."
["city"]=>
string[11] "Los Angeles"
["state"]=>
string[10] "California"
["zip"]=>
string[5] "27222"
["$$hashKey"]=>
string[8] "object:4"
}
}
Tôi đang cố gắng lặp qua các đối tượng và gặp lỗi
Object of class stdClass could not be converted to string
Đây là cách tôi đang cố gắng làm điều đó:
foreach[$request as $i => $i_value] {
echo $i_value;
}
Đã hỏi ngày 31 tháng 7 năm 2015 lúc 19:08Jul 31, 2015 at 19:08
1
$i_value
là đối tượng. Bởi vì đó là một đối tượng, bạn không thể chỉ lặp lại nó [không giống như trong JavaScript nơi bạn có thể đúc bất kỳ đối tượng nào vào chuỗi].
Bạn có thể lặp lại các thuộc tính cụ thể của đối tượng:
foreach[$request as $i => $i_value] {
echo $i_value->name;
}
Tất nhiên bạn cũng có thể sử dụng
array[2] {
[0]=>
object[stdClass]#1 [8] {
["name"]=>
string[11] "Alex Jordan"
["email"]=>
string[14] ""
["phone"]=>
int[123456789]
["street"]=>
string[12] "street, str."
["city"]=>
string[7] "Chicago"
["state"]=>
string[7] "Chicago"
["zip"]=>
string[5] "07202"
["$$hashKey"]=>
string[8] "object:3"
}
[1]=>
object[stdClass]#2 [8] {
["name"]=>
string[15] "Michael Jonhson"
["email"]=>
string[17] ""
["phone"]=>
float[11987654321]
["street"]=>
string[12] "street, str."
["city"]=>
string[11] "Los Angeles"
["state"]=>
string[10] "California"
["zip"]=>
string[5] "27222"
["$$hashKey"]=>
string[8] "object:4"
}
}
0 một lần nữa để đổ từng đối tượng. array[2] {
[0]=>
object[stdClass]#1 [8] {
["name"]=>
string[11] "Alex Jordan"
["email"]=>
string[14] ""
["phone"]=>
int[123456789]
["street"]=>
string[12] "street, str."
["city"]=>
string[7] "Chicago"
["state"]=>
string[7] "Chicago"
["zip"]=>
string[5] "07202"
["$$hashKey"]=>
string[8] "object:3"
}
[1]=>
object[stdClass]#2 [8] {
["name"]=>
string[15] "Michael Jonhson"
["email"]=>
string[17] ""
["phone"]=>
float[11987654321]
["street"]=>
string[12] "street, str."
["city"]=>
string[11] "Los Angeles"
["state"]=>
string[10] "California"
["zip"]=>
string[5] "27222"
["$$hashKey"]=>
string[8] "object:4"
}
}
1 cũng nên hoạt động.Các đối tượng chỉ có thể được đúc theo chuỗi giống như bạn nếu chúng thực hiện phương thức ma thuật
array[2] {
[0]=>
object[stdClass]#1 [8] {
["name"]=>
string[11] "Alex Jordan"
["email"]=>
string[14] ""
["phone"]=>
int[123456789]
["street"]=>
string[12] "street, str."
["city"]=>
string[7] "Chicago"
["state"]=>
string[7] "Chicago"
["zip"]=>
string[5] "07202"
["$$hashKey"]=>
string[8] "object:3"
}
[1]=>
object[stdClass]#2 [8] {
["name"]=>
string[15] "Michael Jonhson"
["email"]=>
string[17] ""
["phone"]=>
float[11987654321]
["street"]=>
string[12] "street, str."
["city"]=>
string[11] "Los Angeles"
["state"]=>
string[10] "California"
["zip"]=>
string[5] "27222"
["$$hashKey"]=>
string[8] "object:4"
}
}
2, nhưng các đối tượng được tạo bởi array[2] {
[0]=>
object[stdClass]#1 [8] {
["name"]=>
string[11] "Alex Jordan"
["email"]=>
string[14] ""
["phone"]=>
int[123456789]
["street"]=>
string[12] "street, str."
["city"]=>
string[7] "Chicago"
["state"]=>
string[7] "Chicago"
["zip"]=>
string[5] "07202"
["$$hashKey"]=>
string[8] "object:3"
}
[1]=>
object[stdClass]#2 [8] {
["name"]=>
string[15] "Michael Jonhson"
["email"]=>
string[17] ""
["phone"]=>
float[11987654321]
["street"]=>
string[12] "street, str."
["city"]=>
string[11] "Los Angeles"
["state"]=>
string[10] "California"
["zip"]=>
string[5] "27222"
["$$hashKey"]=>
string[8] "object:4"
}
}
3 chỉ là các đối tượng array[2] {
[0]=>
object[stdClass]#1 [8] {
["name"]=>
string[11] "Alex Jordan"
["email"]=>
string[14] ""
["phone"]=>
int[123456789]
["street"]=>
string[12] "street, str."
["city"]=>
string[7] "Chicago"
["state"]=>
string[7] "Chicago"
["zip"]=>
string[5] "07202"
["$$hashKey"]=>
string[8] "object:3"
}
[1]=>
object[stdClass]#2 [8] {
["name"]=>
string[15] "Michael Jonhson"
["email"]=>
string[17] ""
["phone"]=>
float[11987654321]
["street"]=>
string[12] "street, str."
["city"]=>
string[11] "Los Angeles"
["state"]=>
string[10] "California"
["zip"]=>
string[5] "27222"
["$$hashKey"]=>
string[8] "object:4"
}
}
4 đơn giản không thực hiện điều này. Có lẽ bạn không phải là ý định của bạn để làm điều này, nhưng nếu bạn tò mò, bạn có thể nhìn vào json_decode sang lớp tùy chỉnh để xem cách bạn có thể sử dụng một lớp tùy chỉnh thay vì stdclass.
Đã trả lời ngày 31 tháng 7 năm 2015 lúc 19:12Jul 31, 2015 at 19:12
GoleztrolgoleztrolGolezTrol
Huy hiệu vàng 113K1717 gold badges181 silver badges204 bronze badges
Tôi đã có cùng một vấn đề gần đây. Tôi đã sử dụng vòng lặp
array[2] {
[0]=>
object[stdClass]#1 [8] {
["name"]=>
string[11] "Alex Jordan"
["email"]=>
string[14] ""
["phone"]=>
int[123456789]
["street"]=>
string[12] "street, str."
["city"]=>
string[7] "Chicago"
["state"]=>
string[7] "Chicago"
["zip"]=>
string[5] "07202"
["$$hashKey"]=>
string[8] "object:3"
}
[1]=>
object[stdClass]#2 [8] {
["name"]=>
string[15] "Michael Jonhson"
["email"]=>
string[17] ""
["phone"]=>
float[11987654321]
["street"]=>
string[12] "street, str."
["city"]=>
string[11] "Los Angeles"
["state"]=>
string[10] "California"
["zip"]=>
string[5] "27222"
["$$hashKey"]=>
string[8] "object:4"
}
}
5 để lặp qua mảng cho tôi lỗi array[2] {
[0]=>
object[stdClass]#1 [8] {
["name"]=>
string[11] "Alex Jordan"
["email"]=>
string[14] ""
["phone"]=>
int[123456789]
["street"]=>
string[12] "street, str."
["city"]=>
string[7] "Chicago"
["state"]=>
string[7] "Chicago"
["zip"]=>
string[5] "07202"
["$$hashKey"]=>
string[8] "object:3"
}
[1]=>
object[stdClass]#2 [8] {
["name"]=>
string[15] "Michael Jonhson"
["email"]=>
string[17] ""
["phone"]=>
float[11987654321]
["street"]=>
string[12] "street, str."
["city"]=>
string[11] "Los Angeles"
["state"]=>
string[10] "California"
["zip"]=>
string[5] "27222"
["$$hashKey"]=>
string[8] "object:4"
}
}
6. Sử dụng array[2] {
[0]=>
object[stdClass]#1 [8] {
["name"]=>
string[11] "Alex Jordan"
["email"]=>
string[14] ""
["phone"]=>
int[123456789]
["street"]=>
string[12] "street, str."
["city"]=>
string[7] "Chicago"
["state"]=>
string[7] "Chicago"
["zip"]=>
string[5] "07202"
["$$hashKey"]=>
string[8] "object:3"
}
[1]=>
object[stdClass]#2 [8] {
["name"]=>
string[15] "Michael Jonhson"
["email"]=>
string[17] ""
["phone"]=>
float[11987654321]
["street"]=>
string[12] "street, str."
["city"]=>
string[11] "Los Angeles"
["state"]=>
string[10] "California"
["zip"]=>
string[5] "27222"
["$$hashKey"]=>
string[8] "object:4"
}
}
7 đã giải quyết lỗi của array[2] {
[0]=>
object[stdClass]#1 [8] {
["name"]=>
string[11] "Alex Jordan"
["email"]=>
string[14] ""
["phone"]=>
int[123456789]
["street"]=>
string[12] "street, str."
["city"]=>
string[7] "Chicago"
["state"]=>
string[7] "Chicago"
["zip"]=>
string[5] "07202"
["$$hashKey"]=>
string[8] "object:3"
}
[1]=>
object[stdClass]#2 [8] {
["name"]=>
string[15] "Michael Jonhson"
["email"]=>
string[17] ""
["phone"]=>
float[11987654321]
["street"]=>
string[12] "street, str."
["city"]=>
string[11] "Los Angeles"
["state"]=>
string[10] "California"
["zip"]=>
string[5] "27222"
["$$hashKey"]=>
string[8] "object:4"
}
}
6. Tôi biết đã quá muộn để trả lời câu hỏi này nhưng đây là cho một người có thể đang tìm kiếm nó trong tương lai$postData = file_get_contents["php://input"];
$request = json_decode[$postData];
// or you can do $postData = json_decode[file_get_contents["php://input"]];
$arrayOfUsers = $request->data; // I used a key of data while sending the array via fetch API
for[$x = 0; $x < count[$arrayOfUsers]; $x++]
{
if[isset[$arrayOfUsers[$x]]]
{
$name = $arrayOfUsers[$x]->name;
$email = $arrayOfUsers[$x]->email;
$phone = $arrayOfUsers[$x]->phone;
$street = $arrayOfUSers[$x]->street;
// .... and so on
// then you can do whatever you want with the data
} else {
echo "No Data Found";
}
}
Đã trả lời ngày 11 tháng 7 năm 2021 lúc 8:27Jul 11, 2021 at 8:27
Bạn cũng có thể sử dụng Array_Map [? Callable $ Gọi lại, mảng $ mảng, mảng ... $ mảng]: mảng
- để có được thuộc tính bắt buộc của mỗi đối tượng;
- hoặc thậm chí thay đổi dữ liệu của nó.
Mã này bao gồm cả hai trường hợp [sandbox_url]: