PHP数组中所有其他元素的组合


PHP array combining every other element

我有一个对象,它有几个属性,可以创建一个多维数组。我想弄清楚如何创建一个新的数组,将两个独立的对象组合成一个。它会从这个开始:

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++;
}