我有一个对象,它有几个属性,可以创建一个多维数组。我想弄清楚如何创建一个新的数组,将两个独立的对象组合成一个。它会从这个开始:
array(
object_1(
'id' => '1',
'name' => 'joe'
etc....),
object_2(
'id' => '2',
'name' => 'jessica',
etc....)
object_3(
'id' => '3',
'name' => 'tim',
etc....)
object_4(
'id' => '4',
'name' => 'tammy',
etc....)
);
,成为:
array(
object_1(
'id' => '1',
'name' => 'joe',
etc...
'id2' = > '2',
'name2' => 'jessica',
etc...)
object_2(
'id' => '3',
'name' => 'tim',
etc...
'id2' = > '4',
'name2' => 'tammy',
etc...)
因此,我需要组合来自交替元素的数据,并更改所有第二个对象中的键,使其与第一个对象不匹配。有意义吗?如果没有,我很抱歉,如果你需要,我会尽量澄清!
感谢您的帮助....
编辑:前两个stdclass对象根据print_r:
[results] => Array
(
[0] => stdClass Object
(
[email] => sample@info.com
[message] => Create another test
[image] => 138.png
[fid] => 53
)
[1] => stdClass Object
(
[email] => info@sample.com
[message] => none
[image] => 330.jpg
[fid] => 52
)
,我想让它变成:
[results] => Array
(
[0] => stdClass Object
(
[email] => sample@info.com
[message] => Create another test
[image] => 138.png
[fid] => 53
[email2] => info@sample.com
[message2] => none
[image2] => 330.jpg
[fid2] => 52
)
明白了吗?
假设它实际上是一个多维数组,而不是一个对象数组,应该这样做:
$new_array = array();
for ($i = 0; $i < count($array); $i +=2) {
$new_array[] = $array[$i];
foreach ($array[$i+1] as $key => $value) {
$new_array[$i/2][$key.'2'] = $value;
}
}
编辑:对于一个对象数组,它变成:
$new_array = array();
for ($i = 0; $i < count($array); $i +=2) {
$new_array[] = $array[$i];
foreach (get_object_vars($array[$i+1] as $key => $value) {
$new_array[$i/2]->{$key.'2'} = $value;
}
}
你可以这样做
for($i=0;$i<count($array);$i+=2) {
$id = $array[$i]['id'];
$name = $array[$i]['name'];
$id2 = $array[$i+1]['id'];
$name2 = $array[$i+1]['name'];
}
或
$newarray = array();
$j=0;
for($i=0;$i<count($array);$i+=2) {
$newarray[$j]['id'] = $array[$i]['id'];
$newarray[$j]['nae'] = $array[$i]['name'];
$newarray[$j]['id2'] = $array[$i+1]['id'];
$newarray[$j]['name2'] = $array[$i+1]['name'];
$j++;
}