我正在将API集成到我的网站,该网站使用存储在对象中的数据,而我的代码是使用数组编写的.
我想要一个快速而又脏的函数将对象转换为数组.
<?php
print_r($response->response->docs);
?>
Run Code Online (Sandbox Code Playgroud)
输出以下内容:
Array
(
[0] => Object
(
[_fields:private] => Array
(
[id]=>9093
[name]=>zahir
)
Object
(
[_fields:private] => Array
(
[id]=>9094
[name]=>hussain
)..
)
)
Run Code Online (Sandbox Code Playgroud)
如何将此对象转换为数组?我想输出以下内容:
Array
(
[0]=>
(
[id]=>9093
[name]=>zahir
)
[1]=>
(
[id]=>9094
[name]=>hussain
)...
)
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我做了以下数组:
$clasa = array(
'e1' => array('nume' => 'Nitu', 'prenume' => 'Andrei', 'sex' => 'm', 'varsta' => 23),
'e2' => array('nume' => 'Nae', 'prenume' => 'Ionel', 'sex' => 'm', 'varsta' => 27),
'e3' => array('nume' => 'Noman', 'prenume' => 'Alice', 'sex' => 'f', 'varsta' => 22),
'e4' => array('nume' => 'Geangos', 'prenume' => 'Bogdan', 'sex' => 'm', 'varsta' => 23),
'e5' => array('nume' => 'Vasile', 'prenume' => 'Mihai', 'sex' => 'm', 'varsta' => 25)
);
Run Code Online (Sandbox Code Playgroud)
我想知道如何使用stdClass()将这个数组转换为一个对象,我是一个PHP初学者,一个简单的例子会非常有帮助,我试过寻找类似的问题,但答案很复杂,超越了我对基本类和对象的理解.
就像我们使用__ToString一样,有没有办法定义一个方法来进行投射?
$obj = (MyClass) $another_class_obj;
Run Code Online (Sandbox Code Playgroud) 可能重复:
将数组转换为对象PHP
我正在创建一个简单的PHP应用程序,我想使用YAML文件作为数据存储.我将获取数据作为关联数组,例如:
$user = array('username' => 'martin', 'md5password' => '5d41402abc4b2a76b9719d911017c592')
Run Code Online (Sandbox Code Playgroud)
但是,我想用一些函数扩展关联数组并使用->运算符,所以我可以写这样的东西:
$user->username = 'martin'; // sets $user['username']
$user->setPassword('hello'); // writes md5 of 'hello' to $user['md5password']
$user->save(); // saves the data back to the file
Run Code Online (Sandbox Code Playgroud)
没有类定义,有没有一种好方法可以做到这一点?
基本上,我想在PHP中拥有JavaScript样式对象:)
我还是PHP新手所以请耐心等待.
所以我收到此错误:注意:尝试在此行上获取非对象的属性:
echo (
"<tr>".
"<td>".$row->last_name. "</td>".
"<td>".$row->first_name. "</td>".
"<td>".$row->phone_no. "</td>".
"<td>".$row->date_of_birth. "</td>".
"<td>".$row->membership. "</td>".
"</tr></table>");
Run Code Online (Sandbox Code Playgroud)
我在我的函数上使用了print_r,得到了:
Array
(
[0] => Array
(
[0] => Lee
[last_name] => Lee
[1] => Lian
[first_name] => Lian
[2] => 39025823
[phone_no] => 39025823
[3] => 1967-09-19
[date_of_birth] => 1967-09-19
[4] => T
[membership] => T
[5] =>
[status] =>
[6] => 0
[room_no] => 0
)
)
Run Code Online (Sandbox Code Playgroud)
所以数组中有元素.
实际代码属于:
foreach($array as $row)
{
echo (
"<tr>".
"<td>".$row->last_name. "</td>".
"<td>".$row->first_name. "</td>".
"<td>".$row->phone_no. "</td>". …Run Code Online (Sandbox Code Playgroud) 我有一个数组,我从其他来源检索.然后需要将此数组转换为我创建的自定义类.
我不能使用stdObject的原因是因为我的类有一个自定义__get以及一些方便的方法.
我基本上需要这样的东西:
$obj = (MyClass) $array;
Run Code Online (Sandbox Code Playgroud)
这看起来不可能,它会导致语法错误.
我有一个以下形式的数组,
Array
(
[0] => Array
(
[emailAddress] => abc@gmail.com
[subject] => Hi
[content] => How are you?
[attachment] => QmFzZTY0IGlzIGFuIGVuY29kaW5nIHNjaGVtZSB1c2VkIHRvIHJlcHJlc2VudCBiaW5hcnkgZGF0YSBpbiBhbiBBU0NJSSBmb3JtYXQuIA==
[fileName] => Base 64 Encoder
)
)
Run Code Online (Sandbox Code Playgroud)
我怎么能在下面的表格中得到它:
Array
(
[emailAddress] => abc@gmail.com
[subject] => Hi
[content] => How are you?
[attachments] => Array
(
[attachment] => QmFzZTY0IGlzIGFuIGVuY29kaW5nIHNjaGVtZSB1c2VkIHRvIHJlcHJlc2VudCBiaW5hcnkgZGF0YSBpbiBhbiBBU0NJSSBmb3JtYXQu
[fileName] => Base 64 Encoder
)
)
Run Code Online (Sandbox Code Playgroud)
有没有办法将类型转换[attachments] => Array为[attachments] => Object?如下:
Array
(
[emailAddress] => abc@gmail.com
[subject] => Hi
[content] => How are you?
[attachments] => …Run Code Online (Sandbox Code Playgroud) 我从数组中得到了错误的值.
$json = file_get_contents('http://onleague.stormrise.pt:8031/OnLeagueRest/resources/onleague/Utils/Countries');
$data = json_decode($json, TRUE);
$countries = array();
foreach($data['data'] as $item) {
$countries[] = $item['description'];
}
print_r($countries);
Run Code Online (Sandbox Code Playgroud)
结果是:
Array ( [0] => g [1] => )
Run Code Online (Sandbox Code Playgroud) 所以我读了它以将数组转换为对象,我可以简单地(object)在变量前使用$my_obj = (object) $my_array. 话虽如此,为什么在执行下面的代码时会出现以下错误。
注意试图在第 26 行获取非对象的属性
我不应该能够通过使用访问对象的属性$car->make吗?
<?php
$cars = array(
array(
'make' => 'Audi',
'model' => 'A4',
'year' => '2014',
),
array(
'make' => 'Benz',
'model' => 'c300',
'year' => '2015',
),
array(
'make' => 'BMW',
'model' => 'i8',
'year' => '2016',
),
);
// Convert $cars array to object
$cars = (object) $cars;
foreach ($cars as $car) {
// Shouldn't I be able to access my object
print $car->make …Run Code Online (Sandbox Code Playgroud)